我有一个脚本,它将0-1中的数字作为其中一个选项。我想测试这些不同设置的作用,所以我想循环遍历所有这些设置。我想用这个生成数字:
for ((i=0; i <= 10; i += 1)); do echo "scale=1; ${i}/10"| bc; done
但是,当我尝试此操作时bc
在设置之前不会评估scale=1; ${i}/10
,因此我最终使用scale=1; ${i}/10
而不是我想要的实际数字:
for ((i=0; i <= 10; i += 1)); do Myscript --input testdata --setting "scale=1; ${i}/10"| bc; done
答案 0 :(得分:2)
试试这个循环:
for ((i = 0; i <= 10; i++ )); do
Myscript --input testdata --setting "$(bc -l <<< "scale=1; ${i}/10")"
done
答案 1 :(得分:2)
如果要将其作为文字文本包含,则需要命令替换echo "scale=1; ${i}/10" | bc
:
for ((i=0; i <= 10; i += 1)); do
Myscript --input testdata --setting $(echo "scale=1; ${i}/10"| bc)
done
但是,执行以下操作会更容易:
for i in 0 0.{1..9} 1; do
Myscript --input testdata --setting $i
done