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

use*_*021 4 command-line bash scripts

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

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

echo "hello"
Run Code Online (Sandbox Code Playgroud)

它打印“你好”没有错误。但是这个脚本:

#!/bin/bash
for i in `seq 1 5`; do 
    echo $i
done
Run Code Online (Sandbox Code Playgroud)

...输出此错误:

Syntax error: end of file unexpected (expecting "done")
Run Code Online (Sandbox Code Playgroud)

那个循环有问题吗?

Fra*_*que 8

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

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