LINUX.ORG.RU

BASH: вложенный hash и итерирование по нему

 


0

1

Добрый день!

Как реализовать на BASH4 вложенный ассоциативный массив и проитерировать по нему?

Делаю так:

declare -A SERVICES
SERVICES["serv1", "name"]="123"
SERVICES["serv1", "cmd"]="634"
SERVICES["serv2", "name"]="5345"
SERVICES["serv3", "cmd"]="456"

Получили двумерную таблицу. Как проитерировать по строкам? ${#SERVICES[A]} дает 4, а ожидаю 2.

★★★★

Последнее исправление: exst (всего исправлений: 2)

«serv1», «name» --- это одна строка, а не два раздельных параметра разделенных запятой

anonymous
()
Ответ на: комментарий от exst

Bash provides one-dimensional indexed and associative array variables.

http://www.gnu.org/software/bash/manual/html_node/Arrays.html

То есть красивыми штатными средствами никак.

Остается только изобретать велосипед. А если его приходится изобретать, то в первую очередь нужно спросить себя: подходящий ли я выбрал интсрумент для решения своей задачи?

Chumka ★★★
()
Ответ на: комментарий от exst

А как реализовать многомерный ассоциативный массив?

s/bash/нормальных ЯП/

anonymous
()
Ответ на: комментарий от Chumka

Остается только изобретать велосипед. А если его приходится изобретать, то в первую очередь нужно спросить себя: подходящий ли я выбрал интсрумент для решения своей задачи?

Тогда остается везде поставить perl или ruby =).

exst ★★★★
() автор топика
Ответ на: комментарий от anonymous

немного =). Создать конфигурацию для скрипта. Описать несколько задач, которые нужно обрабатывать. В моем случае это контроль сервисов.

А вообще все переписал на ruby. Намного легче воспринимается.

exst ★★★★
() автор топика
Последнее исправление: exst (всего исправлений: 1)
Ответ на: комментарий от anonymous

это сочетание достаточно редкое. Обычно хотя бы огрызки перла есть.

arkhnchul ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.