Linux 运行Bash脚本会导致';错误的解释器:没有这样的文件或目录';错误

Linux 运行Bash脚本会导致';错误的解释器:没有这样的文件或目录';错误,linux,bash,shell,file-permissions,Linux,Bash,Shell,File Permissions,我确实发现了一些问题 糟糕的解释器:SO上没有这样的文件或目录 当我将脚本从更改为 #!/usr/bin/bash echo -e "\t\t\e[92mHello from the Test Script!\e[39m" 致: 之后 我做了第一行的改变,从这里寻找答案 我不明白为什么从第一行删除/usr会有帮助 p.S.我正在学习linux文件权限,即使使用“755”更改权限,我也无法执行我的文件。 所以,如果有人能解释一下,请提前谢谢。:这是因为/usr/bin/bash没有bash二进

我确实发现了一些问题

糟糕的解释器:SO上没有这样的文件或目录

当我将脚本从更改为

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

之后 我做了第一行的改变,从这里寻找答案

我不明白为什么从第一行删除/usr会有帮助

p.S.我正在学习linux文件权限,即使使用“755”更改权限,我也无法执行我的文件。
所以,如果有人能解释一下,请提前谢谢。:

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

#行(称为shebang)确定运行脚本所使用的程序(sh、bash、ruby、perl、python等)

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


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

#行(称为shebang)确定运行脚本所使用的程序(sh、bash、ruby、perl、python等)

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


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

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

你可以在

至于你问题的第二部分;权限是什么并不重要;因为文件指向一个坏的解释器


有关unix文件权限的更多信息,我建议阅读。

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

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

你可以在

至于你问题的第二部分;权限是什么并不重要;因为文件指向一个坏的解释器


有关unix文件权限的详细信息,我建议阅读。

在我的示例中,在脚本名称解决问题之前添加
sh

在我的示例中,在脚本名称解决问题之前添加
sh

如果从本地目录调用脚本,也可以通过在开头添加“/”来调用脚本。另一种解决方案是通过指定其完整路径来调用脚本。

如果从本地目录调用脚本,也可以通过在开头添加“/”来调用脚本。另一种解决方案是通过指定它的完整路径来调用它。

这可能与为什么被否决的原因重复?我对它投了赞成票,因为虽然英语可以更好,但这是可以理解的。这可能是为什么被否决的重复?我把它投了赞成票,因为虽然英语可以更好,但它是可以理解的。它所做的就是覆盖了shebang
#/usr/bin/bash
(shebang用于指定解释器)并使用
sh
ell(
/bin/sh
)显式执行脚本
哪个sh
会告诉您这确实是路径。对于
哪个bash
,也是如此。它所做的就是覆盖shebang
#/usr/bin/bash
(shebang用于指定解释器)并使用
sh
ell(
/bin/sh
)显式执行脚本
哪个sh
会告诉您这确实是路径。类似地,对于哪个bash
,这没有什么区别,因为shebang(
#!/usr/bin/bash
)仍然是脚本的(错误)解释器。当您位于脚本所在的目录中时,将使用此方法<代码>$PATH
将不(不应)包含“.”(即当前目录)。因此,使用
/script.sh
您说的是“在current目录中执行此脚本”。这不会有什么区别,因为shebang(
#!/usr/bin/bash
)仍然是脚本的(错误)解释器。当您位于脚本所在的目录中时,将使用此方法<代码>$PATH将不(不应)包含“.”(即当前目录)。因此,在
/script.sh
中,您说的是“在current目录中执行此脚本”。
#!/bin/bash
echo -e "\t\t\e[92mHello from the Test Script!\e[39m"