Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory

文章目录


参考博客: Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory
首先在此对这位博主表示感谢。

运行bash脚本会出现两个文件,1037.err1037.out

1037.err的文件内容如下:

  • /data/home/user12/.lsbatch/1694577957.1037: /data/home/user12/.lsbatch/1694577957.1037.shell: /bin/sh^M: bad interpreter: No such file or directory
第一步
使用下述命令看看该文件的格式,dos格式的文件行尾为^M$,unix格式的文件行尾为$

执行命令行:cat -A xxx.sh
Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory_第1张图片

二、详解
1、cat -A 表示展示所有,等同于-vET;
2、cat -b:输出带有行号的字符到基本输出设备(一般是屏幕);
3、cat -e:等同于-VE
4、cat -E:在每行的最后展示$符号;就是无论你输入了什么,屏幕会直接显示你刚才输入的内容,并且在每行最后用$符号结尾;
5、cat -n:在所有输出行前添加行号;
6、cat -s:抑制空行输入,就是如果你有多行连续的空行,他会压缩成一行输出;
第二步
使用下述命令直接替换结尾符为unix格式 命令行:sed -i "s/\r//" xxx.sh ![在这里插入图片描述](https://img-blog.csdnimg.cn/94912813a4cb41a79b926a80bdd88fa5.png)
第三步

再次使用 cat -A xxx.sh命令可以看到文件的格式为unix格式
Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory_第2张图片

你可能感兴趣的:(Liunx,linux,bash,运维)