【问题标题】:syntax error: unexpected end of file in for loop语法错误:for 循环中文件意外结束
【发布时间】:2017-10-07 18:43:00
【问题描述】:

我有一个非常大的脚本,我正在尝试引入一个 for 循环。 为了测试我的语法是否正确,在第 120 行说,我有:

for M in "1 2 3 4"; do
    echo $M
end

但是我得到了错误:

./script.sh: line 120: syntax error: unexpected end of file

更令人担忧的是,如果我跑步,我会得到同样的结果:

for M in $( ls ); do
    echo $M
end

我在这里做错了什么?

【问题讨论】:

  • bash 中没有 end。使用for .. do .. done
  • 你的 hash-bang 是什么,即第一行?如果只有扩展名,您的脚本可能会被解释为 sh 脚本而不是 bash 脚本。
  • 永远不要有意识地在for循环中解析ls的输出,参见ParsingLs
  • 查看help for 了解bash 内置命令的语法,请查看:shellcheck.net
  • @sat,就是这样 - 谢谢

标签: string bash list for-loop


【解决方案1】:

您需要使用done 而不是end 来完成for 循环

【讨论】:

  • 在编码时看不到这样的小错误细节,这很有趣。谢谢。
猜你喜欢
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
  • 2017-06-08
  • 2013-04-13
相关资源
最近更新 更多