Ben*_*min 4 shell bash shell-script brace-expansion
for i in {1..40}
do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
我有
{1..40}
Run Code Online (Sandbox Code Playgroud)
我想要一些类似的东西
1
2
3
and so on
Run Code Online (Sandbox Code Playgroud)
所以我可以i
在命令的参数中使用变量。
在bash 3.0+(以及 zsh 和 ksh93)中,{1..40}
将扩展到 1-40(含)的数字。在像 dash 这样的POSIX shell(/bin/sh
在 Ubuntu 中很典型),它不会工作(我们称这个问题为“bashism”)。
在带有 GNU 实用程序的系统上,您可以使用以下方法seq
来完成此操作:
for i in $(seq 1 40)
do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
为了更便携,您必须$i
在while
循环中手动递增:
i=1
while [ $i -le 40 ]
do
echo $i
i=$((i+1))
done
Run Code Online (Sandbox Code Playgroud)
由于缺少外部命令,此便携式版本的速度也稍快一些。