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