运行Bash脚本会导致“错误的解释器:没有此类文件或目录”错误

时间:2017-01-29 06:05:01

标签: linux bash shell file-permissions

我确实在

上找到了问题

错误的解释器:SO 上没有这样的文件或目录。

当我从

更改脚本时,我的问题也解决了
#!/usr/bin/bash
echo -e "\t\t\e[92mHello from the Test Script!\e[39m"

为:

#!/bin/bash
echo -e "\t\t\e[92mHello from the Test Script!\e[39m"

后 我在这里找到答案的第一线改变了。

Shell script: Bad interpreter.No such file or directory

我无法理解为什么从第一行删除/ usr会有所帮助。

P.S。我正在学习linux文件权限,即使在使用'755'更改权限后我也无法执行我的文件。 所以,如果有人能解释我的话,请提前。谢谢。)

4 个答案:

答案 0 :(得分:2)

在您的系统上,bash shell位于/bin/bash而不是/usr/bin/bash

!之后的路径应该是可执行文件的路径,该可执行文件将作为参数传递脚本的内容。

您可以在wikipedia

了解详情

关于你问题的第二部分;它不重要的是权限是什么;因为文件指向一个糟糕的翻译。

有关unix文件权限的更多信息,建议您阅读this entry on wikipedia

答案 1 :(得分:1)

那是因为/usr/bin/bash没有bash二进制文件,bash的正确路径为/bin/bash

脚本顶部的#!行称为shebang,用于确定运行脚本的程序(sh,bash,ruby,perl,python等)。

这篇文章很好地涵盖了这个主题:

https://unix.stackexchange.com/questions/87560/does-the-shebang-determine-the-shell-which-runs-the-script

答案 2 :(得分:1)

在我的情况下,在脚本名称之前添加sh解决了问题。

答案 3 :(得分:0)

您也可以通过添加" ./"来调用您的脚本;在开始时,如果您从本地目录中调用它。另一种解决方案是通过指定其完整路径来调用它。