在运行 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:
|
|
- CentOS/RHEL Linux:
|
|
- Mac OS X:
|
|
安装完毕后,可以使用以下命令将脚本文件中的换行符转换为 Unix 风格的换行符:
|
|
然后,再次运行脚本文件 ./start.sh
来确保该问题已经得到解决。