在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