【问题标题】:bash for loop: a range of numbers [duplicate]bash for循环:一系列数字[重复]
【发布时间】:2013-07-19 03:23:28
【问题描述】:

我在 .sh 文件中有以下代码:

for num in {1..10}
do
  echo $num
done

应该打印从 1 到 10 的数字。但是,这是我得到的:

{1..10}

此外,使用类似 C 的语法也不起作用:

for ((i=1; i<=10; i++))

这给我一个错误:

Syntax error: Bad for loop variable

我的 bash 版本是 4.2.25。

【问题讨论】:

  • 您的代码在 4.1.5 中对我来说可以正常工作
  • 您还可以使用 seq.试试“seq 1 5”。
  • 如果将bash 执行为sh 是行不通的;如果将bash 执行为bash,它将起作用。
  • 在 for 循环条件之前让 i= 0 时,C 语法有效。

标签: bash for-loop


【解决方案1】:

代码应该如下(注意shebang是bash,而不是sh):

 #!/bin/bash
 echo "Bash version ${BASH_VERSION}..."
 for i in {0..10..1}
    do
       echo "Welcome $i times"
 done

来源http://www.cyberciti.biz/faq/bash-for-loop/

【讨论】:

  • 这个:(注意 shebang 说的是 bash,而不是 sh)
  • ..1 是不必要的。
  • "..1" 在 MacOSX Bash 中无法解析。
  • 这对我不起作用。~/u/tmp> cat try #!/bin/bash # for integer in {1..10..1} do echo "integer is $integer"完成 ~/u/tmp> ./try 整数是 {1..10..1} ~/u/tmp>
  • "..1" 步长在 bash 4.0+ 中添加
猜你喜欢
  • 2019-04-09
  • 2011-08-09
  • 2016-09-11
  • 2019-03-07
  • 2021-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多