[英]bash: how to access a “dynamic declared variable” in a for loop
我在使用“動態創建的”變量(名稱)時遇到問題
BZ="b01 b02 b03"
[user:~]$ for i in $BZ; do echo $i ; declare status_$i=foobar_"$i" ; echo wrong: $status_$i;done
輸出:
b01
wrong: b01
b02
wrong: b02
b03
wrong: b03
[user:~]$ echo $status_b01 $status_b02
輸出正常:
foobar_b01 foobar_b02
該變量存在。 內容還可以。 如何在不使用顯式名稱$ status_b03的情況下獲取值? 我喜歡使用類似$ status_ $ i(變量的動態創建名稱)的名稱。
最佳馬克
您必須使用具有變量名的變量才能被取消引用:
BZ="b01 b02 b03"
for i in $BZ
do
echo "$i"
declare status_$i=foobar_"$i"
vname=status_$i
echo "${!vname}"
done
輸出:
b01
foobar_b01
b02
foobar_b02
b03
foobar_b03
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.