我只是想知道是否可以在 for 循环中使用变量?我试过了:
for number in { eval echo {0..$1}}
do
echo 5
done
我的意思是让它打印出我输入提示的次数 5 但是,如果我输入,它的行为会很奇怪:
./test.sh 2
它应该打印 5 两次,但它会打印 5 四次。有人可以帮我弄这个吗?还有为什么它打印了 4 次而不是 2 次?
编辑:大部分
for number in $(seq "$2")
有效,但如果我尝试用它进行计算,它会破坏我的代码:
time=1
total=5
for number in $(seq "$2")
do
echo "$time + $total" | bc
done
给出:seq:无效的浮点参数:'' 尝试'seq --help'以获取更多信息。有人可以告诉我如何解决吗?
它打印了 5 四次,因为结果
{ eval echo {0..2}}
是四个空格分隔的标记{
,0
和1
2}
如果要
$1
在 bash 中用作范围表达式的结尾,最好使用外部seq
命令:或使用 C 风格的
for
循环