section_example=(one two three)
name=example; section_$name+=(four)
bash: syntax error near unexpected token `four'
一部の名前は事前に知られていません。eval
そしてdeclare -a
同じエラーを出力します。私が見る唯一の方法は、セクション名と値を含む連想配列を宣言することです。
ベストアンサー1
eval
二重引用符を使用すると、edコマンドは失敗しますか?良い
name=example; eval "section_$name+=(six)"
echo "${section_example[@]}"
one two three four five six
最近のbash
ESは「nameref」変数を提供しています。man bash
:
宣言またはローカル組み込みコマンドの-nオプション(以下の宣言とローカルの説明を参照)を使用して、変数にnameref属性を割り当てて、namerefまたは他の変数への参照を生成できます。これにより、変数を間接的に操作できます。
努力する
> declare -n NamRef=section_$name
> NamRef+=(four)
> echo "${NamRef[@]}"
one two three four
> echo "${section_example[@]}"
one two three four