文章目录
参考博客: Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory
首先在此对这位博主表示感谢。
运行bash脚本会出现两个文件, 1037.err
和1037.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
二、详解
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
格式