在windows下编辑或者打开过的sh脚本,windows的行尾“\n\r”,在unix下行尾“\n”。因此在linux下执行时要把多余的“\r“去掉
确认问题:
cat -A script.sh 报错前每行末尾^M$,linux正常每行末尾是只有一个$
解决方法一:
sudo apt-get install dos2unix
dos2unix script.sh
解决方法二:
有时候文件中含有二进制,使用上边的方法无法转换,可以使用sed除去尾部
\r
导致此错误的字符:
sed -i 's/\r$//' script.sh

发布评论