Cygwin if then else 语句 - 语法错误

Cygwin if then else statement - syntax error

我错在哪里了?该脚本在 Debian 上完美运行,但 cygwin 显示语法错误(意外的文件结尾)

if [ ! -r error ] ; then
echo "0"
else
echo "file exist"
fi

在我当前的 Cygwin 设置中,bash 在 C:\cygwin\bin。 所以对于 运行ning,bash 脚本命令将是

C:\cygwin\bin\bash  bashfile.sh

因此,你需要在你的cygwin中找到bash的路径并且 运行 正确路径为 bash

的 .sh 文件

这可能是行尾字符的问题,特别是如果您使用了 CRLF(carriage-return line-feed)。

使用 tr -d '\r' < yourscript > newfile 从您的文件中删除这些字符并 运行 bash newfile.

我通过 windows 记事本创建和编辑脚本 - 看来这是我的问题。当我通过 vi 编辑器在 cygwin 中创建新脚本时一切正常

P.S 通过 notepad++ 编辑并为 Unix 系统保存文件对我没有帮助