运行 Bash 脚本导致 'Bad interpreter: No such file or directory' 错误
Running a Bash script results in 'Bad interpreter: No such file or directory' error
我确实在
上找到了问题
错误的解释器: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”更改权限后我也无法执行我的文件。
所以,如果有人能提前给我解释一下this.Thanks。:)
那是因为 /usr/bin/bash
处没有 bash 二进制文件, bash 的正确路径是 /bin/bash
.
脚本顶部的 #!
行,称为 shebang,决定了哪个程序(sh、bash、ruby、perl、python 等。 ) 用于 运行 脚本。
这篇 post 很好地涵盖了这个主题:
在您的系统上,bash
shell 位于 /bin/bash
而不是 /usr/bin/bash
。
!
之后的路径应该是将脚本内容作为参数传递的可执行文件的路径。
您可以在 wikipedia
阅读更多相关信息
关于你问题的第二部分;权限是什么并不重要;因为文件指向错误的解释器。
有关 unix 文件权限的更多信息,我建议阅读 this entry on wikipedia。
在我的例子中,在脚本名称前添加 sh
解决了问题。
您也可以通过在开头添加“./”来调用您的脚本,以防您从本地目录调用它。另一种解决方案是通过指定其完整路径来调用它。
我确实在
上找到了问题错误的解释器: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”更改权限后我也无法执行我的文件。 所以,如果有人能提前给我解释一下this.Thanks。:)
那是因为 /usr/bin/bash
处没有 bash 二进制文件, bash 的正确路径是 /bin/bash
.
脚本顶部的 #!
行,称为 shebang,决定了哪个程序(sh、bash、ruby、perl、python 等。 ) 用于 运行 脚本。
这篇 post 很好地涵盖了这个主题:
在您的系统上,bash
shell 位于 /bin/bash
而不是 /usr/bin/bash
。
!
之后的路径应该是将脚本内容作为参数传递的可执行文件的路径。
您可以在 wikipedia
阅读更多相关信息关于你问题的第二部分;权限是什么并不重要;因为文件指向错误的解释器。
有关 unix 文件权限的更多信息,我建议阅读 this entry on wikipedia。
在我的例子中,在脚本名称前添加 sh
解决了问题。
您也可以通过在开头添加“./”来调用您的脚本,以防您从本地目录调用它。另一种解决方案是通过指定其完整路径来调用它。