私はこれらの変数を持っています
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