bin bash: No such file or directory 解决方法
错误提示
./bash.sh: line 1: *!/bin/bash: No such file or directory
执行脚本报警告信息。
原因及解决方法
Windows
的回车换行(\r\n
)和Linux
的回车换行(\n
)是不同的。
安装dos2unix
:
yum install dos2unix -y
执行:
dos2unix bash.sh
重新保存文件,去掉 unicode 签名就好了。
扩展
\r
(回车 - Carriage Return)
\r
(回车): 这个概念源于机械打字机。当打字员打完一行字后,需要把字车(Carriage)复位到本行的开头,以便开始输入下一行。所以,回车
指的是光标回到当前行的开头。
\n
(换行 - Line Feed)
\n
(换行): 同样源于机械打字机。当打完一行字后,字纸需要向上卷动一行,以便在下一行开始输入。所以,换行
指的是光标垂直向下移动一行。
特性 |
\r (回车) |
\n (换行) |
\r\n (回车换行) |
含义 |
光标回到当前行开头 |
光标垂直向下移动一行 |
光标回到行首并移动到下一行 |
操作系统 |
旧版 macOS (Mac OS 9) |
Unix/Linux, macOS (较新) |
Windows |
网络协议 |
较少单独使用 |
较少单独使用 |
HTTP, FTP, SMTP 等 |
视觉效果 |
通常不可见,或导致覆盖 |
换行 |
换行 |