无法运行在 Windows 上创建的 shell 脚本

sta*_*979 1 linux windows bash shell

我似乎遇到了一个奇怪的问题,其解决方案可能非常简单,而我只是盲目的。

我的开发环境是Windows。我创建了一个部署存档文件,其中包含一个 shell 脚本文件(称为 install.sh)。我将此存档通过 sftp 传输到 Linux 环境,解压它并尝试运行执行脚本(在 chmod 之后使其可执行),然后出现此错误:

语法错误:意外的文件结尾

我没有注意到文件中有任何错误。我删除这个文件,创建一个新的 install.sh,从我的 Windows 环境中复制确切的内容,再次 chmod 它,再次运行它,这次运行正常!

我不知道为什么它在我第一次解压时不运行。任何帮助表示赞赏!

Cyr*_*rus 5

检查你的文件:

cat --show-nonprinting file
Run Code Online (Sandbox Code Playgroud)

从 Windows/DOS 中删除回车符:

tr -d "\r" < file > fixed_file
Run Code Online (Sandbox Code Playgroud)