在记事本,Notepad++撸shell代码的时候保存为.sh上传到Linux上时,发现代码正确。但是在Linux下运行出错。
用cat -v看到脚本有^M的标记符
[root@yjh37 ~]# cat -v t.sh #! /bin/sh^M echo "Is it morning? Please answer 0 or 1."^M read YES_OR_NO^M if [ "$YES_OR_NO" = "0" ]; then^M echo "Good morning!"^M elif [ "$YES_OR_NO" = "1" ]; then^M echo "Good afternoon!"^M else^M echo "Sorry, $YES_OR_NO not recognized. Enter yes or no."^M exit 1^M fi^M exit 0^M
我们可以安装dos2unix转换格式
[root@yjh37 ~]# yum -y install dos2unix
可以运行
总结:在windows下撸脚本,一定要注意Unix格式的转换,以免出现问题。
前几天我也遇到这样的情况。lz总结的可以