Cygwin if then else语句 - 语法错误

时间:2018-06-19 08:49:42

标签: bash if-statement cygwin

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

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

3 个答案:

答案 0 :(得分:3)

这可能是行尾字符的问题,特别是如果您使用CRLF(回车换行)。

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

答案 1 :(得分:0)

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

C:\cygwin\bin\bash  bashfile.sh

因此,你需要在你的cygwin中找到bash的路径 使用正确的bash路径运行.sh文件

答案 2 :(得分:-1)

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

P.S通过记事本++进行编辑并为Unix系统保存文件对我没有帮助