比较for循环中的两个变量

时间:2012-07-23 16:45:57

标签: shell for-loop

我需要创建一个for循环,但我对shell比较新。我想要相当于:

For i = 1 to limit

就像在Visual Basic中一样,'limit'是一个变量,设置为我想要for循环的持续时间。

3 个答案:

答案 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

修改

bashzsh都支持这种C风格的循环:

for ((i=0;i <= limit; i++)); do echo $i; done

请注意,$内无需(( ... ))