【问题标题】:bash for loop work in command line, but failed in scriptbash for 循环在命令行中工作,但在脚本中失败
【发布时间】:2011-08-15 08:43:04
【问题描述】:

当在 debian bash 命令行中运行 for 语句时,它工作正常。 但是当我在 sh 脚本中运行它或使用 bash 命令运行它时,它会保持报告“错误接近意外令牌‘do’” 区别在哪里?

[leon@www] ~/tmp $ for i in {1..10}; do echo $i; done
1
2
3
4
5
6
7
8
9
10
[leon@www] ~/tmp $ bash for i in {1..10}; do echo $i; done
-bash: syntax error near unexpected token `do'

顺便说一句,在centos环境中一切正常。

【问题讨论】:

    标签: bash for-loop debian


    【解决方案1】:

    使用-c 选项,以便 bash 从您传入的字符串中读取命令。此外,在命令周围使用单引号。

    bash -c 'for i in {1..10}; do echo $i; done'
    

    【讨论】:

      【解决方案2】:

      你的 bash 命令行以第一个 ;

      结尾

      所以它被单独执行为:

      bash for i in {1..10};
      do echo $i;
      done
      

      并且 man bash 说命令参数应该是要加载的文件: bash [options] [file]

      【讨论】:

        【解决方案3】:

        您可以将所有脚本包含在引号内或文件中。因为在这里,你正在做bash for i in {1..10} 然后do echo $i 等等。如果你不把它放在一个文件中,你应该使用 -c 选项。

        【讨论】:

          猜你喜欢
          • 2013-09-28
          • 2019-12-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-20
          • 2015-11-28
          • 2014-10-04
          • 2021-08-27
          相关资源
          最近更新 更多