Bash 脚本中出现意外的 EOF,为什么?

Bash 脚本中出现意外的 EOF,为什么?

我通常无法运行 sh 脚本。这很令人困惑。我将权限设置为 777 和 +x,因此它应该可以与“sh”命令一起使用,对吧……

但它的工作方式很奇怪。例如,这个脚本工作正常:

echo "hello"

它打印“hello”,没有任何错误。但是这个脚本:

#!/bin/bash
for i in `seq 1 5`; do 
    echo $i
done

...输出此错误:

Syntax error: end of file unexpected (expecting "done")

这个循环有什么问题吗?

答案1

问题在于,您可能Ctrl+C Ctrl+V从网站上创建了一个,并且行尾字符有一些奇怪的字符,不是可打印的字符。(您可以通过将文件转储为十六进制来使其可见。)

请在编辑器中打开您的文件,然后手动重新输入所有内容,或者至少删除最后的 eol 字符,保存您的工作,然后重试。

相关内容