2つのリストに含まれるいくつかの値を、2つの入れ子になったforループ内の単純なエコーに渡したいと思います(エコーは、内部ループ内で生成される内容を確認するために使用されます)。しかし、結果は予想したものとは異なりました。本当に指示が必要です!
bashシェルを使用してください。これはスニペットです:
a_list="0.05 0.10"
b_list="120.0 130.0"
c=44
x=555.0
for a in $a_list
do
for b in $b_list
do
echo $x $a $b $c
done
done
私はこれを期待する:
555.0 0.05 120.0 44
555.0 0.05 130.0 44
555.0 0.10 120.0 44
555.0 0.10 130.0 44
しかし、私はそれを理解します:
555.0 0.05 120.0 44
44.0 0.05 130.0
555.0 0.10 120.0 44
44.0 0.10 130.0
2行と4行が間違っています。 44が最初にエコーされ、555.0を上書きするようです。リストの値を for ループに直接ロードすると正常に動作します。このように:
c=44
x=555.0
for a in 0.05 0.10
do
for b in 120.0 130.0
do
echo $x $a $b $c
done
done
助けと洞察力をありがとう!
答え1
前述のように、コードはすでに機能していますが、シェル配列を試してみることもできます。
a_list=(0.05 0.10)
b_list=(120.0 130.0)
c=44
x=555.0
for a in "${a_list[@]}"
do
for b in "${b_list[@]}"
do
echo "$x $a $b $c"
done
done