系统:centos 7.9标签:bin,文件,No,unix,bad,sh,dos,格式,OracleShellInstall From: https://blog.51cto.com/u_12991611/5745237
问题描述:在执行OracleShellInstall.sh脚本时报错/bin/bash^M: bad interpreter: No such file or directory,如下所示:
[root@liujun soft]# ./OracleShellInstall.sh -lf ens33
-bash: ./OracleShellInstall.sh: /bin/bash^M: bad interpreter: No such file or directory
异常原因:
windows下文件是dos格式,行尾以\r\n标识,linux下文件是unix格式,行尾以\n标识.
查文件格式:
1、cat -A <filename>,若输出结果中行尾是^M$,则是dos格式,若行末尾只是$,则是unix格式.
2、vim <filename>,编辑文件,执行“:set ff”,若执行结果为fileformat=dos则为dos格式,若fileformat=unix则为unix格式.
3、od -t x1 <filename>,以16进制查看文件,若输出结果中存在“0d 0a”则为dos格式,若只有“0a”则为unix格式.其中“0d”即为回车符“\r”,“0a”即为换行符“\n”.
修改格式
1、sed -i "s/\r//" <filename>
2、vim <filename>,编辑文件,执行“:set ff=unix”,将文件设置为unix格式,然后执行“:wq”,保存退出.
处理过程:因OracleShellInstall.sh脚本为windows上传的文件,采用cat -A OracleShellInstall.sh的方式确认到每行行尾为” ^M$”.此后将OracleShellInstall.sh内容复制粘贴到linux新建的文件中解决.
补充说明:修改格式中的方法后面均测试OK.
原文链接:https://blog.csdn.net/asty9000/article/details/86506662