0

私は bash ループを持っています。すべての変数を読み込もうとしています:

var1="hello1"

var2="hello2"

var3="hello3"

for i in `seq 1 3`;
do
 ab=var$i
 # Now ab == var1, I want to echo $var1 

done

動的に var(1)(2)(3) を取得して、その文字列を取得しようとしています。

編集:

ここでのポイントは、変数 (たとえば) を変数としてab=var$i 使用して変数を連結する方法です。値を取得することを意味 します。配列ではなく、この特定の例でそれを行う方法を意味していませんでした。abvar1var1hello1

私が自分自身を明確にしたことを願っています。

4

2 に答える 2

4
var1="hello1"
var2="hello2"
var3="hello3"

for i in `seq 1 3`;
do
    ab=var$i
    echo ${!ab}
done

それがあなたのより大きな問題に対する最善の解決策であるかどうかはわかりませんが、あなたの差し迫った要求に対する直接的な解決策です.

于 2012-11-14T19:39:50.157 に答える
1

より簡単なアプローチ:

var1="hello1"
var2="hello2"
var3="hello3"

eval echo\ $var{1..3}\;

次のように拡張されます。

echo $var1
echo $var2
echo $var3

出力:

hello1 
hello2 
hello3
于 2012-11-14T19:36:40.353 に答える