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

 

[html] view plain copy
 
  1. #!/bin/bash^M$  
  2. ^M$  
  3. #Program:^M$  
  4. ^M$  
  5. #    ip scanner ^M$  
  6. ^M$  
  7. #Author:^M$  
  8. ^M$  
  9. #    wangzhe^M$  
  10. ^M$  
  11. #Time:^M$  
  12. ^M$  
  13. #    2012-9-1^M$  
  14. ^M$  
  15. #eaxmple:sh scanner.sh 192.168.1.101^M$  
  16. ^M$  
  17. ^M$  
  18. ^M$  
  19. network=$(echo $1 | cut -d. -f1-3)^M$  
  20. ^M$  
  21. ^M$  
  22. ^M$  
  23. for i in $(seq 1 254)^M$  
  24. ^M$  
  25. do^M$  
  26. ^M$  
  27.     ping -c 1 -w 1 $network.$i > /dev/null ^M$  
  28. ^M$  
  29.     if [ $? -eq 0 ]; then ^M$  
  30. ^M$  
  31.            arp $network.$i | grep ":" | awk '{print $1,$3}'     ^M$  
  32. ^M$  
  33.           echo "host $network.$i is up"^M$  
  34. ^M$  
  35.     else ^M$  
  36. ^M$  
  37.         echo "host $network.$i is down"^M$  
  38. ^M$  
  39. fi^M$  
  40. ^M$  
  41. done^M$  

PS:cat -A 什么意思?

A就是all的意思,就是所有的都显示出现,也就是说\n\r默认是不显示的。

这时候只需要删除这个字符就可以了。

 

怎么删掉呢?

正则表达式sed-i 's/\r$//'filename

说明:

 

[html] view plain copy
 
  1. -i插入  
  2. s替代模式  
  3. \r$表示任何以\r结束的字符  
  4. 整句意思是把以\r结束的字符换成空白 
posted @   邱明成  阅读(4858)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示