2013-12-13 3 views
2

У ассоциативного массиваПрисвоить ассоциативное значение массива, если пусто в Баше

OPTIONS[a]="a-value" 

есть еще один массив id и нужно установить значение от ВАРИАНТОВ только тогда, когда некоторое значение не установлено, так что-то вроде

id[KEY1]=${id[KEY1]:-OPTIONS[a]} 

но это не работает.

Как использовать bash's :- «переменная замена» ассоциативными массивами?

ответ

3

Вы были довольно близки. Это работает для меня:

$ OPTIONS[a]="a-value" 
$ id[KEY1]="b" 
$ id[KEY1]=${id[KEY1]:-${OPTIONS[a]}} 
$ echo ${id[KEY1]} 
b 
$ unset id 
$ id[KEY1]=${id[KEY1]:-${OPTIONS[a]}} 
$ echo ${id[KEY1]} 
a-value 
+0

Большое спасибо! Почему это очевидно? :) :) – novacik

Смежные вопросы