我需要做一个 for 循环,但我对 shell 比较陌生。我想要相当于:
For i = 1 to limit
就像在 Visual basic 中一样,其中“limit”是一个变量,设置为我希望 for 循环持续多长时间。
在没有外部实用程序(如 seq)的情况下执行此操作的 POSIX 方法是使用 while 循环:
limit=10
i=0
while [ "$i" -le "$limit" ]; do
...
i=$((i + 1))
done
for i in $(seq 1 limit); do ...; done
如果:
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 (( ... ))
。