可能重复:
如何在 bash 中迭代一系列数字?
我正在尝试打印“Hello World!” 通过下面的代码 10 次,但它只打印一次。我在哪里缺少正确的语法?
RUNS=10
for RUN in {1..$RUNS}
do
echo "Hello World!"
done
可能重复:
如何在 bash 中迭代一系列数字?
我正在尝试打印“Hello World!” 通过下面的代码 10 次,但它只打印一次。我在哪里缺少正确的语法?
RUNS=10
for RUN in {1..$RUNS}
do
echo "Hello World!"
done
简而言之,我建议您使用:
RUNS=10
for RUN in $(seq 1 $RUNS)
do
echo "Hello World!"
done
因为它也更有可能在其他 shell 上工作。
如果要避免子外壳的开销,可以使用:
RUNS=10
i=0;
while [ $i -lt $RUNS ]
do
echo "Hello World!"
i=$(($i+1))
done
你想做一个大括号扩展,但 bash 不做双扩展(它需要 expand $RUNS
)。您可以通过以下方式强制双扩展
for RUN in $(eval echo {1..$RUNS})
do
echo "Hello World!"
done
但我建议你避免像瘟疫一样的混乱,然后做
for RUN in $(seq 1 $RUNS)
do
echo "Hello World!"
done
或者
for ((RUN=1; RUN<RUNS; RUN++))
do
echo "Hello World!"
done
{A..B}语法似乎没有替换变量
for ((i=0; i < $RUNS; ++i)); do echo "hello world"; done