簡體   English   中英

bash:如何在for循環中訪問“動態聲明的變量”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM