4 linux bash shell cygwin if-statement
我刚开始使用bash shell编程.我在Windows 7计算机上安装了Cygwin.我开始使用本教程编写脚本.我的脚本需要传递一个参数,如果没有,它应该显示错误信息.这是直接来自教程的代码和我的代码中的相同代码:
[ $# -eq 0 ] && { echo "usage: someArgument"; exit 1; }
Run Code Online (Sandbox Code Playgroud)
当我执行以下操作时:
sh ./myscript.sh
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
-bash: /home/Me/myscript.sh: line 5: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)
"意外的文件结尾"是指我错过了fi
或done
等地方.
我仔细检查了我的代码,但一无所获.另外,当我注释掉这一行时,脚本的效果非常好.
我尝试使用if...then...fi
:
if [ $# -eq 0 ]
then
echo "usage: someArgument"
exit 1;
fi
Run Code Online (Sandbox Code Playgroud)
但无济于事!
请帮忙,这一直困扰着我.
小智 5
抱歉,添麻烦了.我对伊戈尔提到的隐形符号进行了一些研究.你必须dos2unix
在Cygwin中运行,它为我解决了它.Dos类型的文件\r\n
代替\n
和其他一些使Cygwin感到困惑的东西.
这个:
$ dos2unix ./myscript.sh
$ sh ./myscript.sh
Run Code Online (Sandbox Code Playgroud)
工作正常.
归档时间: |
|
查看次数: |
5002 次 |
最近记录: |