【问题标题】:For loop running only once in Bash [duplicate]For循环在Bash中只运行一次[重复]
【发布时间】:2015-09-13 09:07:14
【问题描述】:

我刚刚开始编写 shell 脚本。 这是我的代码:

read totalNumbers

for i in {1..$totalNumbers..1}
do
  echo "Welcome $i times"   
done

当输入为 100 时,我得到的输出为

Welcome {1..100..1} times

但我需要类似的东西

Welcome 1 times

Welcome 2 times

Welcome 3 times

.

.

.

Welcome 100 times

【问题讨论】:

    标签: bash shell for-loop


    【解决方案1】:

    你不能在 shell 的 {..} 中使用变量名。

    您可以在 BASH 中使用 ((..)) 进行算术运算:

    for (( i=1; i <= $totalNumbers; i++ )); do
      echo "Welcome $i times"   
    done
    

    即使for (( i=1; i &lt;= totalNumbers; i++ )) 也可以。

    【讨论】:

      【解决方案2】:

      如果你想使用

      {1..$totalNumbers..1}
      

      不管怎样,换成

      $(eval echo {1..$totalNumbers..1})
      

      $(...) 运行一个子shell。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-07
        • 1970-01-01
        • 2021-06-15
        • 2014-12-07
        • 2023-03-24
        • 1970-01-01
        相关资源
        最近更新 更多