
我們想要回顯 shell 變數的值,該變數的變數名稱包含另一個變數字串。例如:
我們想要以下輸出
var1=1
var2=2
我們嘗試了幾種類似於下面的形式,但它們不起作用
for j in {1..2}
do
export var${j}=$j
echo "var${j}=${var${j}}"
done
我們如何設定和回顯名稱中包含變數字串的 shell 變數?
謝謝
答案1
在 bash(或 ksh)中,您可以使用間接語法${!var}
來引用名稱為 的值的變數$var
。它必須是完整的名稱,所以你必須這樣做:
for j in {1..2}; do
# This could have been declare instead of export if you don't need
# to export the variable.
export var${j}=$j
varname=var$j
echo "var${j}=${!varname}"
done
答案2
你能按照 @rici 的解釋這樣做,但這很少是一個好主意。如果您使用數組,則可以使用更簡單的語法實現相同的效果:
var=("1" "2");
for j in {0..1}
do
echo "var$j : ${var[$j]}"
done