変数は別の変数内にネストされています。

変数は別の変数内にネストされています。

私はこれらの変数を持っています

a1=0.017
a2=0.2
a3=10.7
a4=20.9
a5=35.4

for ((x=1; x<=5; x++))
do
 for i in a${x}
 do
 echo "Welcome $i times"
 done
done

出力は次のようになります。

"Welcome 0.017 times"
"Welcome 0.2 times"
"Welcome 10.7 times"
"Welcome 20.9 times"
"Welcome 35.4 times"

しかし、私の現在の出力は

Welcome a1 times
Welcome a2 times
Welcome a3 times
Welcome a4 times
Welcome a5 times

a1を「10」形式の$ a1としてどのように印刷しますか?

それ以外の場合は、次のことを行う必要があります。

for i in $a1 $a2 $a3 $a4 $a5
do
 echo "Welcome $i times"
done

問題は、「a」変数が100を超え、上記の最後のオプションを使用できないことです。

「ループ」外の新しい提案も良いです。

非常にありがとう

ベストアンサー1

あなたの要求を満たすことは難しくありません。

a1=0.017
a2=0.2
a3=10.7
a4=20.9
a5=35.4

for ((x = 1; x <= 5; x++)); do
    var="a${x}"
    echo "Welcome ${!var} times"
done

aしかし、配列変数を作成する方が簡単です。

a=(
    0.017
    0.2
    10.7
    20.9
    35.4
)

for x in "${a[@]}"; do
    echo "Welcome ${x} times"
done

おすすめ記事