Error处理:/bin/bash^M: 坏的解释器: 没有该文件或目录(bad interpreter: No such file or directory)

75 篇文章 2 订阅
44 篇文章 1 订阅

在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结束的字符换成空白




  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
这个错误提示表示脚本文件的格式有问题,可能是由于文件中包含了不可见的回车符导致的。你可以使用sed命令来移除这些回车符。具体操作是执行以下命令:sed -i -e 's/\r$//' sg.sh \[1\]。 另外,你可以使用echo $PATH命令来查看当前的环境路径。这个命令会列出一系列路径,用冒号分隔。例如,/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/arm/4.3.2/bin \[2\]。 在准备工作中,你需要准备一个虚拟机,并安装工具链。安装完成后,你需要设置环境变量,将工具链的路径添加到PATH中。你可以使用sudo vi /etc/environment命令来编辑环境变量文件,并将路径添加到PATH变量中。例如,PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin" \[3\]。 综上所述,如果你遇到了"-bash: ./modify_time.sh:/bin/bash^M: bad interpreter: No such file or directory"的错误,你可以尝试使用sed命令移除回车符,并确保你的环境变量设置正确。 #### 引用[.reference_title] - *1* *2* *3* [JZ2440学习笔记一](https://blog.csdn.net/hbutluoxi/article/details/122697881)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JerryHe

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值