在Windows 10 系統下編輯了一個發送消息到企業微信的shell腳本文件,然后copy到了遠程的Linux服務器,當運行的時候報錯了。如下所示:
root@ubuntu116:/data/gitlabData/auto_back_shell# ./qiyewechat-notifier.sh
-bash: ./qiyewechat-notifier.sh: /bin/bash^M: 壞的解釋器: 沒有那個文件或目錄
root@ubuntu116:/data/gitlabData/auto_back_shell#
錯誤原因:
這個文件在Windows 下編輯過,在Windows下每一行結尾是\n\r,而Linux下則是\n,所以才會有 多出來的\r。
使用指令sed -i 's/\r$//' xxxxxxx.sh,上面的指令會把 xxxxxxx.sh 中的\r 替換成空白!
例子:
sed -i 's/\r$//'xxx.sh