执行Shell脚本出错-bash xxx binbash bad interpreter No such file or directory

执行Shell脚本出错-bash xxx binbash bad interpreter No such file or directory

01 问题

在执行shell脚本时提示出现:”-bash: xxx: /bin/bash^M: bad interpreter: No such file or directory” 错误

02 原因分析

主要原因是test.sh 在windows环境上创建和编辑,编辑完成后再上传到Linux操作系统中,在执行。sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。

03 解决方法

  1. 首先用vi或者vim命令打开shell文件

  2. 在命令模式中输入:set ff,回车后可以看到文件的格式为dos

    1
    2
    :set ff
    fileformat=dos
  3. 修改文件格式为unix有三种方法修改

  • 方法1:打开文件使用vi或vim命令修改,命令如下:

    1
    :set ff=unix

    执行完后再通过“:set ff”命令查看文件格式,结果如下:

    1
    fileformat=unix
  • 方法2:直接使用dos2unix命令修改;命令如下:

    1
    dos2unix xxx.sh

    其中xxx为shell文件名
    修改完再次执行shell文件就能正确运行了。

  • 方法3:直接执行

    1
    sed -i "s/\r//" a.sh

    来转化, 然后就可以执行./a.sh运行脚本了。


执行Shell脚本出错-bash xxx binbash bad interpreter No such file or directory
https://hesc.info/8b82cfa2ec2e/
作者
需要哈气的纸飞机
发布于
2019年12月18日
许可协议