Featured image of post 解決運行 sh 腳本時提示「/bin/bash^M: bad interpreter: Text file busy」

解決運行 sh 腳本時提示「/bin/bash^M: bad interpreter: Text file busy」

在運行 sh 腳本時提示「/bin/bash^M: bad interpreter: Text file bu…

在運行 sh 腳本時出現「/bin/bash^M: bad interpreter: Text file busy」的提示,這個問題通常是由於 Windows 和 Unix/Linux 操作系統之間的換行符差異所導致的。

解決運行 sh 腳本時提示「/bin/bash^M: bad interpreter: Text file busy」 在 Windows 操作系統中,每行文本的結尾通常是由「\r\n」(也稱為 CRLF)組成。而在 Unix/Linux 操作系統中,每行文本的結尾則通常只使用「\n」(也稱為 LF)。因此,當將包含 Windows 風格換行符的腳本文件從 Windows 移植到 Unix/Linux 時,可能會遇到這種類型的錯誤。

要解決這個問題,可以使用 dos2unix 命令將腳本文件中的換行符轉換為 Unix 風格的換行符。你可以在終端中執行以下命令來安裝並使用 dos2unix 工具:

  1. Ubuntu/Debian Linux:

    1
    2
    
    sudo apt-get update
    sudo apt-get install dos2unix
    
  2. CentOS/RHEL Linux:

    1
    
    sudo yum install dos2unix
    
  3. Mac OS X:

    1
    
    brew install dos2unix
    

安裝完成後,可以使用以下命令將腳本文件中的換行符轉換為 Unix 風格的換行符:

1
dos2unix start.sh

解決運行 sh 腳本時提示「/bin/bash^M: bad interpreter: Text file busy」 然後,再次運行腳本文件 ./start.sh 以確保該問題已經得到解決。

Licensed under CC BY-NC-SA 4.0