解決 bash: /bin/bash^M: bad interpreter: No such file or directory

遇到bash執行時候出現 /bin/bash^M: bad interpreter: No such file or directory

這個錯誤是因為檔案 使用了 Windows 的換行符號(\r\n)而不是 Unix/Linux 的換行符號(\n)。Linux 系統中的 bash 解析器無法正確處理帶有 Windows 換行符的文件。

cat -A h2.sh
如果看到每行結尾有 ^M,這就表明文件是使用 Windows 的換行格式。
處理方案一:
安裝並使用 dos2unix 轉換文件格式:
#apt update
#apt install dos2unix
#dos2unix test.sh
再次執行腳本應該可以解決問題。

處理方案二:
可以使用 sed 命令手動移除 ^M
# sed -i ‘s/\r$//’ test.sh