我需要创建一个for循环,但我对shell比较新。我想要相当于:
For i = 1 to limit
就像在Visual Basic中一样,'limit'是一个变量,设置为我想要for循环的持续时间。
答案 0 :(得分:1)
for i in $(seq 1 limit); do ...; done
答案 1 :(得分:1)
没有外部实用程序(如seq)的POSIX方法是使用while循环:
limit=10
i=0
while [ "$i" -le "$limit" ]; do
...
i=$((i + 1))
done
答案 2 :(得分:0)
如果:
limit=10
然后在zsh
中使用:
for i in {1..$limit}; do echo $i; done
在bash
中使用jordanm或Lars Kotthoff建议的答案或使用:
for i in $(eval echo {1..$limit}); do echo $i; done
bash
和zsh
都支持这种C风格的循环:
for ((i=0;i <= limit; i++)); do echo $i; done
请注意,$
内无需(( ... ))
。