1

我需要做一个 for 循环,但我对 shell 比较陌生。我想要相当于:

For i = 1 to limit

就像在 Visual basic 中一样,其中“limit”是一个变量,设置为我希望 for 循环持续多长时间。

4

3 回答 3

1

在没有外部实用程序(如 seq)的情况下执行此操作的 POSIX 方法是使用 while 循环:

limit=10
i=0

while [ "$i" -le "$limit" ]; do
   ...
   i=$((i + 1))
done
于 2012-07-23T16:59:53.763 回答
1

for i in $(seq 1 limit); do ...; done

于 2012-07-23T16:48:25.447 回答
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

注意,不需要$when within (( ... ))

于 2012-07-23T16:52:21.543 回答