在windows用notepad++编辑的shell脚本,拷贝到centos执行时,报错如下:
导致报错的可能原因:
原因1:Windows的文本默认是dos格式,换行符 CR LF。Linux的文本是unix格式,换行符 LF。另外,Mac系统下文本换行符为 CR。
解决1:将dos格式转成unix格式,再执行脚本就不会报错了。
转换方式1:在windows中,notepad++编辑器右下角可直接修改文档格式,如图:
转换方式2:在Linux中,用vim打开脚本
用 :set ff 可查看文件格式
用 :set ff=unix 可设置文件格式为unix:
转换方式3:在Linux中,用dos2unix工具转换:
yum -y install dos2unix
dos2unix myScript.sh
原因2:shell脚本格式存在错误。用以下命令快速检查脚本是否有格式错误:
sh -n myScript.sh
解决2:检查脚本中的语法错误,更正即可。
=============================================================
我的报错的原因:
排查了很久,发现不是格式问题导致的报错。而是语法错误导致的,如下:
2019-12-25,Merry Christmas~