两个列表中的值在两个嵌套循环中无法正确处理

两个列表中的值在两个嵌套循环中无法正确处理

我试图将两个列表中包含的一些值传递给两个嵌套 for 循环内的简单回显(回显用于查看内部循环内生成的内容)。但结果并非预期。我确实需要一些指导!

使用 bash shell。这是片段:


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

虽然您的代码应该已经可以工作,如前所述,您可能想尝试使用 shell 数组...

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

相关内容