我有一個數組bucket1=('10' '22' 'bucket1')
BASH:數組元素成爲一個新的數組的名字
正如你所看到的內容之一是數組的bucket1
現在,我創建了名稱一個新的數組複製bucket1
:
array1=("${bucket1[@]}")
現在我改變的要素之一array1
:
array1[1]='30'
echo ${array1[@]}
給10 30 bucket1
現在我要養活那變回陣列bucket1
,但不知道array1
從bucket1
創建。相反,我想使用array1
的第三個元素,即bucket1。
喜歡的東西:
declare -a ${array1[2]}=${array1[@]}
所以,我結束了新bucket1
陣列,包含('10' '30' 'bucket1')
簡而言之: 我想複製一個數組,改變複製的數組,從應用更改原始數組中的複製數組使用複製數組中的一個元素作爲原始數組的名稱。
這可能嗎?
+1爲了將來的參考,'ksh93'解決方案將在'bash' 4.3中工作,用'declare -n'替換'nameref'。 – chepner 2014-09-24 12:10:10
我不得不將Ubuntu升級到14.04以獲得Bash 4.3。然後,我在chepner的幫助下使用了ksh93解決方案。它的工作原理就是我想要的。乾杯! – Alichino 2014-09-30 08:24:59