Error处理:/bin/bash^M: 坏的解释器: 没有该文件或目录(bad interpreter: No such file or directory)...
在Linux下编译运行脚本的时候出现”/bin/bash^M: 坏的解释器: 没有那个文件或目录(bad interpreter: No such file or directory)“这样的错误。
解决方法:
使用在终端输入sed -i 's/\r$//' check_tool.sh即可
其中check_tool.sh为文件名,这里改成自己需要的即可
原因:
这个文件在Windows 下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n
sed -i 's/\r$//' check_tool.sh 会把check_tool.sh中的行尾的\r替换为空白
详细解析:
这跟系统有关。脚本文件在windows下编辑过,windows下每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符\r,
用cat-A filename时你可以看到这个\r字符被显示为^M
- #!/bin/bash^M$
- ^M$
- #Program:^M$
- ^M$
- # ip scanner ^M$
- ^M$
- #Author:^M$
- ^M$
- # wangzhe^M$
- ^M$
- #Time:^M$
- ^M$
- # 2012-9-1^M$
- ^M$
- #eaxmple:sh scanner.sh 192.168.1.101^M$
- ^M$
- ^M$
- ^M$
- network=$(echo $1 | cut -d. -f1-3)^M$
- ^M$
- ^M$
- ^M$
- for i in $(seq 1 254)^M$
- ^M$
- do^M$
- ^M$
- ping -c 1 -w 1 $network.$i > /dev/null ^M$
- ^M$
- if [ $? -eq 0 ]; then ^M$
- ^M$
- arp $network.$i | grep ":" | awk '{print $1,$3}' ^M$
- ^M$
- echo "host $network.$i is up"^M$
- ^M$
- else ^M$
- ^M$
- echo "host $network.$i is down"^M$
- ^M$
- fi^M$
- ^M$
- done^M$
PS:cat -A 什么意思?
A就是all的意思,就是所有的都显示出现,也就是说\n\r默认是不显示的。
这时候只需要删除这个字符就可以了。
怎么删掉呢?
正则表达式sed-i 's/\r$//'filename
说明:
- -i插入
- s替代模式
- \r$表示任何以\r结束的字符
- 整句意思是把以\r结束的字符换成空白
Error处理:/bin/bash^M: 坏的解释器: 没有该文件或目录(bad interpreter: No such file or directory)...相关推荐
- /bin/bash^M: 坏的解释器: 没有那个文件或目录
编写shell脚本时,我们经常习惯在windows下写好,然后通过共享目录拷到linux下,方便快捷. 杯具的事也来了,当我们在windows写一个shell程序拷到linux中,修改好权限,正准备试 ...
- 解决Linux报错:/bin/bash^M: 坏的解释器: 没有那个文件或目录
这个问题一般是windows编辑shell文件后,拷贝到Linux发生的错误. 原因是在Windows下每一行结尾是\n\r,而Linux下则是\n,所以才会有 多出来的\r 解决方案 执行命令修复, ...
- -bash: xxxx.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
文件在Windows 下编辑过,Windows每行结尾\n\r,Linux是\n,有多出来的\r 使用指令 sed -i 's/\r$//' name.sh 上面的指令会把 name.sh 中的\r ...
- linux -bash: ./startup.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录
有时候编写脚本时会出现类似标题列出的错误,这个问题大多数是因为脚本文件在windows下编辑过.在windows下,每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么你在windows下编 ...
- -bash: ./startup.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录
项目场景: ./startup.sh启动springboot项目 问题描述: 原因分析: 原因:脚本文件是在Windows环境下编辑的,windows环境下,每一行的结尾是\n\r,而Linux环境下 ...
- linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置
一.linux下编译make文件报错"/bin/bash^M: 坏的解释器 参考文章:http://blog.csdn.net/liuqiyao_01/article/details/415 ...
- 【解决】/bin/bash^M: 坏的解释器: 文本文件忙
在Linux系统执行脚本命令时 报错:/bin/bash^M: 坏的解释器: 文本文件忙 看到很多小伙伴在linux环境下(搭建redis集群)时执行脚本命令都遇到了这个错误 Docker搭建red ...
- Linux shell 脚本报错:/bin/bash^M: bad interpreter: No such file or directory
今天遇到一个很诡异的问题,一直运行很正常的shell脚本失败了,只是昨天增加了一个参数而已. 报错信息: /bin/bash^M: bad interpreter: No such file or d ...
- shell脚本报错:-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory
今天写了一个shell脚本,然后在执行的时候报错,脚本内容很简单,仅供测试: Shell代码 #!/bin/sh echo "test shell " 具体报错信息如下: Sh ...
最新文章
- 解决:未找到setenv命令
- 设计模式 之 装饰者模式
- mysql按字段多条组合_MySQL按分组把字段值组合成一个结果
- Spring实战6-利用Spring和JDBC访问数据库
- LeetCode之Construct the Rectangle
- ant 改变表格数据_表格技巧—Excel表格怎么替换数字
- 微信发卡小程序源码-自动发卡小程序源码-带流量主功能
- Dubbo源码分析系列-Dubbo的动态编译原理
- linux进程map,linux内存优化一文中 查看进程mem_map 的实现
- lottie动画_设计师和程序员的动画还原神器Lottie+Bodymovin
- gimp 抠图_gimp抠图教程:gimp快速实现抠图效果
- 数学分析教程(科大)——1-(1~10)小节
- ARP协议ICMP协议
- window10 安装Java11 并可以和Java8进行自由切换
- linux调整逻辑卷大小,调整Linux逻辑卷大小
- Excel 里筛选手机号码所属运营商
- 安卓用ffmeg解码
- 简单网页制作的一些基础格式
- Win10电脑如何进行内存诊断?教程来了
- 从零开始编写minecraft光影包(6)天空绘制
热门文章
- 安装Fedora 15后需做的25件事情
- 附加到IIS进程调试页面
- Matlab的File菜单功能图解 - 导入数据、保存工作空间、搜索路径、系统参数
- asp.net ashx 学习总结
- 资源文件相关学习总结
- Hibernate调用存储过程
- P2774 方格取数问题
- 常见的java异常——java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path...
- 九度oj 题目1078:二叉树遍历
- Android的第一个程序