场景说明:今天网上找了一个备份mysql的shell脚本,在windows下新建了一个文件,把脚本复制进去,然后保存成.sh文件,上传服务器执行,提示:-bash: ./backup_mysql.sh: /bin/bash^M: bad interpreter: 没有那个文件或目录.
原因说明:网上找了资料才知道 如果这个脚本在Windows下编辑过,就有可能被转换成Windows下的dos文本格式了,这样的格式每一行的末尾都是以\r\n来标识,它的ASCII码分别是0x0D,0x0A。如果你将这个脚本文件直接放到Linux上执行就会报/bin/bash^M: bad interpreter错误提示。 解决方法:用vi命令打开文件
vi backup_mysql.sh
然后:
:set ff?
命令检查一下,看看是不是dos字样,如果是dos格式的,继续执行 :set ff=unix 然后执行 :wq 保存退出即可。