在linux系统下,执行shell脚本时,出现下面的提示 [oracle@orcl1 check]$ ./crscheck.sh -bash: ./crscheck.sh: /bin/bash^M: bad interpreter: No such file or directory 在网上搜索类似的错误,基本上都是由于在DOS系统中,编辑的shell脚本,上传到linux中,在运行时,因为文件的类型还是dos,linux系统识别不了而导致。 那如何辨别文件是类型,是dos,还是linux系统识别的unix类型呢,这里有两种方法:如下 1、cat -A filename 从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$。 2、vi filename 打开文件,执行 : set ff,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix。 那解决方法呢,有以下两种: 1、使用linux命令dos2unix filename,直接把文件转换为unix格式. 2、vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式。 将文件类型转换为unix类型后,再运行shell脚本时,可正常动行。
|