Linux 执行.sh报错:bad interpreter: No such file or directory

在home目录下书写了一个简单的脚本,文件类型为.sh,修改过读写权限为全用户可写可执行,但是用./命令运行脚本提示永远是bad interpreter: No such file or directory; 改写了文件为 fileformat=unix

另在terminal下执行 ll 指令后 文件名字是 filename.sh *

阅读 3.6k
5 个回答

第一行加上

#!/bin/sh

试试看。首先要确定/bin/sh是存在的。从错误提示看是shell程序的路径不对

1.首先要确定路径是正确的,cd到文件当前目录;

2.其次要确定shell文件内容写的是正确的,怎样确定内容不正确的报错信息:可以把系统里正确的文件内容改错,然后执行看报什么错;

3.最后是虽然你确定文件权限没有问题,还是建议你用root用户执行下。

这个报错不一定是文件本身的问题,可能是脚本内容中的某一行命令出了问题,一般用
bash -x filename.sh方式调试。

新手上路,请多包涵

这个问题,感觉是因为你没有写 Shebang ,也就是文件头缺少#!/bin/bash
没有这行的话,你用file名去查看这个sh文件的类型。
图片描述
是text,而加过这一行以后,显示为脚本。
图片描述

至于ll,文件名带星号,意思是这个文件是可执行的,其实文件本身名字是没有*的,只是ll输出的时候带上了。

DOS文件格式?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题