linux下执行shell脚本时报错:-bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory。

原因是windows下的文件是dos格式,即每一行结尾以\r\n来标识,而linux下的文件是unix格式,行尾则以\n来标识。

查看文件格式有三种方法:

1.cat -A <filename>,如果输出结果中行末尾是^M$,则是dos格式,如果行末尾只是$,则是unix格式。

2.vim <filename>,编辑文件,执行“:set ff”,若执行结果为fileformat=dos则为dos格式,若执行结果为fileformat=unix则为unix格式。

3.od -t x1 <filename>,以16进制查看文件,若输出结果中存在“0d 0a”则为dos格式,如果只有“0a”则为unix格式。其中“0d”即为回车符“\r”,“0a”即为换行符“\n”。

修改文件格式有三种方式:

1.sed -i "s/\r//" <filename>或sed -i "s/^M//" <filename>,直接将回车符替换为空字符串。

2.vim <filename>,编辑文件,执行“: set ff=unix”,将文件设置为unix格式,然后执行“:wq”,保存退出。

3.dos2unix <filename>或busybox dos2unix <filename>,如果提示command not found,可以使用前两种方法。
---------------------
作者:_荣耀之路_
来源:CSDN
原文:https://blog.csdn.net/asty9000/article/details/86506662
版权声明:本文为博主原创文章,转载请附上博文链接!

linux /bin/bash^M: bad interpreter的解决办法的更多相关文章

  1. CentOS6 Shell脚本/bin/bash^M: bad interpreter错误解决方法

    在windows下保存了一个脚本文件,用ssh上传到centos,添加权限执行nginx提示没有那个文件或目录.shell脚本放到/etc/init.d/目录下,再执行/etc/init.d/ngin ...

  2. shell /bin/bash^M: bad interpreter错误解决

      错误原因之一很有可能是你的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是M ...

  3. Linux 下 -bash: mysql: command not found解决办法

    -bash: mysql: command not found 1.vim ~/.bash_profile 最下面写 export PATH=$PATH:/usr/local/mysql/bin(你的 ...

  4. bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory的解决方法------dos--->unix

    一些人喜欢用vim来写linux shell script, 但是, 有的人喜欢在Windows下用一些方便的编辑器(比如鼎鼎大名的Notepad++)写好, 然后拷贝文件到linux下, 结果呢, ...

  5. Windows下记事本编辑的Shell脚本放到Linux下执行出错,格式问题(/bin/bash^M: bad interpreter: 没有那个文件或目录)

    错误: /bin/bash^M: bad interpreter: 没有那个文件或目录 解决方案: 运行脚本时出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是文件格式的问题,也就 ...

  6. /bin/bash^M: bad interpreter: No such file or directory 解决办法

    参考:-bash: ./my_script: /bin/bash^M: bad interpreter: No such file or directory [duplicate] 有的时候运行.sh ...

  7. Linux shell 脚本报错:/bin/bash^M: bad interpreter: No such file or directory

    今天遇到一个很诡异的问题,一直运行很正常的shell脚本失败了,只是昨天增加了一个参数而已. 报错信息: /bin/bash^M: bad interpreter: No such file or d ...

  8. /bin/bash^M: bad interpreter: 没有那个文件或目录--转载

    运行脚本时出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是文件格式的问题,也就是linux和windows之间的不完全兼容...具体细节不管,如果验证: vim test.sh: ...

  9. Shell脚本报错:-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory

    在学习shell中测试case参数命令代码如下 #!/bin/bash #switch测试 case $1 in     start)         echo 'start'     ;;      ...

随机推荐

  1. windows系统下设置mtu值的方法

    说起 MTU 值,可能许多朋友连听都没听说过.简单来说,我们上网时所进行的操作,都是通过传输一个又一个“数据包”来实现的,而 MTU 值就是用来设定可传输数据包的最大尺寸的.很显然,MTU 值设置得过 ...

  2. ABAP基础篇1 内表

    内表类型 abap 内表类型有三种: 标准表(一般ABAP程序中用的最多就是这种表) 系统为该表的每一行数据生成一个逻辑索引,自己内部维护着行号(Index)的编码.表的键值不唯一,且没有按照表键自动 ...

  3. Android逆向破解:Android Killer使用

    目录   目录 软件介绍 Android Killer是一款可以对APK进行反编译的工具,它能够对反编译后的Smali文件进行修改,并将修改后的文件进行打包. 软件下载 这里用的是@昨夜星辰2012 ...

  4. Shadowing of static functions in Java

    class A { static void fun() { System.out.println("A.fun()"); } } class B extends A { stati ...

  5. Python知识点总结篇(一)

    Python基础 变量 变量类型: 1.数字型 整形:int: 浮点型:float: 布尔型:bool,True和False: 复数型:complex: 2.非数字型 字符串: 列表: 元祖: 字典: ...

  6. 【基于onenet-edp的文件传输】1、调试上报数据点和端对端透传

    onenet-edp上报数据点和端对端透传 一.前言 edp是onenet用于tcp设备定制的一套协议,能够灵活地实现数据上报和透传: 二.准备工作 1.找到edp页面 进入工作台后,找到多协议接入, ...

  7. 用python编写一个搜索引擎

    完整代码如下: #!/usr/bin/env python #-*- coding: utf-8 -*- import sys import os import datetime from PyQt5 ...

  8. t100 常用公用變數

    g_enterprise 目前的企業代碼,將限制使用者所能閱讀的資料內容g_prog 目前執行的作業編號,用於變換畫面顯示資料與產生系統資訊,不可變更g_code 目前執行的程式代碼(4gl)名稱,不 ...

  9. CLRS10.2-8练习 - 单指针值实现双向链表

    要求: Explain how to implement doubly linked lists using only one pointer value x.np peritem instead o ...

  10. NAIPC 2018

    E. Prefix Free Code 大意: 给定$n$个串, 保证任意一个串都不是另一个串的前缀, 从中选出$k$个串可以拼成$\binom{n}{k}k!$种串. 给定其中一个串, 求这个串的排 ...