Intereting Posts
не удалось скомпилировать планировщик GNOME из источника Сценарий оболочки не найден Ошибка обновления всех пакетов ArchLinux с помощью -Syu Возможно ли установить раздел только для некоторых пользователей? Как написано ядро? Что делает `join ‘с точки зрения равноценности в SQL или операций в реляционной алгебре? Мое ядро ​​SMDK2416 (для s3c2416) работает на 64MRAM, но разбилось на 128M Я хочу, чтобы несколько подсказок расшифровывали несколько жестких дисков, которые содержат корневую файловую систему Почему rpmfusion рекомендует использовать переключатель nogpgcheck? Есть ли карта исходного кода GRUB 2? Как добавить несколько адресов электронной почты в сертификат SSL через командную строку? Ryzen Bzy_MHz низкий при разгоне Как правильно сопоставлять IP-набор типа «хеш: ip, порт»? 'sh: 0: Не удается открыть HoNClient-3.4.3.sh', когда я пытаюсь запустить HoNClient Управляющие символы не отображаются в моем терминале (например, когда я нажимаю «^ C»)

BASH – Ассоциативный массив – получение значения ключа в конечном элементе

Я создал ассоциативный массив следующим образом:

declare -A test_array test_array[0,0]="1" test_array[0,1]="A" test_array[0,2]="11" test_array[0,3]="AA" test_array[1,0]="2" test_array[1,1]="B" test_array[1,2]="22" test_array[1,3]="BB" 

Я хочу сделать, чтобы получить значение ключа в конечном элементе. В этом случае 1 в:

 test_array[1,3]="BB" 

Есть ли способ сделать это?

спасибо

К сожалению, в ассоциативном массиве нет «конечного элемента».

Ассоциативные ключи массива не сохраняются в каком-либо заданном порядке. Обычным решением этой проблемы является наличие второго индексированного массива, который содержит ключи в том порядке, который вы хотите запомнить. Например, массив x :

 declare -ax test_array[0,0]="1" x[${#x[*]}]='0,0' test_array[0,1]="A" x[${#x[*]}]='0,1' ... 

${#x[*]} – длина массива x , поэтому каждая строка выше добавляет новую запись в конец массива x (индекс 0, затем 1, …).

Затем вы можете использовать последнюю запись этого массива (по длине индекса-1), чтобы получить свой ключ и значение:

 echo ${x[${#x[*]}-1]} echo ${test_array[${x[${#x[*]}-1]}]}