1、执行下面这个mout.sh脚本的时候,命令行提示如下错误。
-bash: ./mount.sh: /bin/bash^M: bad interpreter: No such file or directory
2、原因分析
创建好这个shell脚本以后,使用命令chmod 777 mount.sh赋予这个文件可执行权限
仔细观察这个文件,尾注,有一个[dos]说明这脚本的文件格式DOS格式,即每一行的行尾是以\r\n来标识的。但是在Linux下的文件结尾符是以\r来标识的。
所以才会发生异常,^M bad interpreter
获取文件格式
在命令执行set ff? 来获取文件格式
文件格式为:fileformat=dos
文件格式为:fileformat=unix
切换文件格式
1、使用set ff命令
使用命令set ff=unix将文件格式切换为unix
使用命令set ff=dos将文件格式切换为dos
2、在命令行上执行
$sed -i -e 's/\r$//' mount.sh
3、使用软件工具
前提需要安装dos2unix软件
并且使用实现文件格式相互转换
dos2unix [filename]
unix2dos [filename]
在命令行上执行
dos2unix moun.sh
执行成功后显示
dos2unix: converting file moun.sh to Unix format ...
第一次执行的时候会提示,未安装的软件
The program 'dos2unix' is currently not installed. You can install it by typing:
需要在命令行上执行如下命令安装软件
sudo apt install dos2unix