在運行 sh 腳本時出現「/bin/bash^M: bad interpreter: Text file busy」的提示,這個問題通常是由於 Windows 和 Unix/Linux 操作系統之間的換行符差異所導致的。
在 Windows 操作系統中,每行文本的結尾通常是由「\r\n」(也稱為 CRLF)組成。而在 Unix/Linux 操作系統中,每行文本的結尾則通常只使用「\n」(也稱為 LF)。因此,當將包含 Windows 風格換行符的腳本文件從 Windows 移植到 Unix/Linux 時,可能會遇到這種類型的錯誤。
要解決這個問題,可以使用 dos2unix
命令將腳本文件中的換行符轉換為 Unix 風格的換行符。你可以在終端中執行以下命令來安裝並使用 dos2unix
工具:
-
Ubuntu/Debian Linux:
1 2
sudo apt-get update sudo apt-get install dos2unix
-
CentOS/RHEL Linux:
1
sudo yum install dos2unix
-
Mac OS X:
1
brew install dos2unix
安裝完成後,可以使用以下命令將腳本文件中的換行符轉換為 Unix 風格的換行符:
|
|
然後,再次運行腳本文件 ./start.sh
以確保該問題已經得到解決。