如何从bash中的变量中构造列表

  • 本文关键字:列表 变量 bash bash unix
  • 更新时间 :
  • 英文 :


可能的重复:
我如何迭代bash中的一系列数字?

我试图打印" Hello World!"通过下面的代码10次,但仅打印一次。我在哪里缺少正确的语法?

RUNS=10
for RUN in {1..$RUNS}
do
    echo "Hello World!"
done

您想进行支架扩展,但bash不进行双重扩展(它需要扩展$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

这个问题包含您需要的所有答案

简而言之,我建议您使用:

RUNS=10
for RUN in $(seq 1 $RUNS)
do
    echo "Hello World!"
done

因为它也可能在其他外壳上也可以使用。

如果要避免子壳的开销,则可以使用:

RUNS=10
i=0;
while [ $i -lt $RUNS ]
do
    echo "Hello World!"
    i=$(($i+1))
done

{a..b} 语法似乎不是代替变量

for ((i=0; i < $RUNS; ++i)); do echo "hello world"; done

相关内容

  • 没有找到相关文章

最新更新