我試圖根據變量創建關聯數組。所以下面是我想要做的超級簡化版本(ls命令並不是我真正想要的,只是用於說明目的)...在Bash中爲關聯數組鍵使用變量
我有一個靜態定義的數組(文本-a ,文字-b)。然後我想遍歷該數組,然後創建帶有這些名稱和_AA的關聯數組(所以關聯數組稱爲text-a_AA和text-b_AA)。
我真的不需要附加的_AA,而是在想,因爲$名稱已經在循環使用 它可能有必要避免重名 。
我將需要那些已定義的腳本,並將在腳本的後續部分引用它們,而不僅僅是在下面看到的for循環中,我試圖定義它們......例如,我想稍後,能夠引用text-a_AA [NUM](同樣,使用text-a_AA部分的變量)。顯然,我下面有什麼不起作用......並且從我可以告訴的是,我需要使用namerefs?我試圖讓語法正確,但似乎無法弄清楚...任何幫助將不勝感激!
#!/usr/bin/env bash
NAMES=('text-a' 'text-b')
for NAME in "${NAMES[@]}"
do
NAME_AA="${NAME}_AA"
$NAME_AA[NUM]=$(cat $NAME | wc -l)
done
for NAME in "${NAMES[@]}"
do
echo "max: ${$NAME_AA[NUM]}"
done
什麼錯誤? – hedgar2017
哪個版本的Bash允許包含'-'的變量名(而不是'_')?在線[Bash](http://www.gnu.org/software/bash/manual/bash.html)手冊似乎沒有列出選項,Bash 3.2和4.3似乎都不允許。 –