美好的一天,
我想知道如何将变量正确传递给for
循环。无论语法如何,我只想传递变量并计算两次。
问题:
当我写下来时:
r=0 ; for i in {"$r"..10..2}; do echo "Welcome $i times" ;done
我明白了:
Welcome {0..10..2} times
而不是:
Welcome 0 times
Welcome 2 times
Welcome 4 times
Welcome 6 times
Welcome 8 times
Welcome 10 times
提前感谢任何线索
答案 0 :(得分:4)
利用变量进行循环边界的for
循环的一般格式是:
#!/bin/bash
a=2
b=10
increment=2
for ((i=$a; i<=$b; i+=$increment)); do
## <something with $i>
echo "i: $i"
done
<强>输出:强>
$ bash forloop.sh
i: 2
i: 4
i: 6
i: 8
i: 10
答案 1 :(得分:1)
为了完整起见,
取代
for i in {"$r"..10..2};
你可以尝试
for i in $(eval echo {$r..10..2});
但是,我强烈反对您使用此解决方案,但请继续使用David的解决方案。
答案 2 :(得分:0)
您不能在{a....b}
语法中使用变量。但您可以使用seq
。
请参阅this