使用shebang行执行脚本更好吗?

Lee*_*ang 2 scripting shebang

我正在查找shebang并想知道为什么我会使用它。我可以使用以下命令执行 bash 脚本:

bash foo.sh
Run Code Online (Sandbox Code Playgroud)

或者

./foo.sh
Run Code Online (Sandbox Code Playgroud)

(在 foo.sh 中有一条 shebang 行)

每种方法的优缺点是什么,我应该默认使用哪一种?

nan*_*nny 5

我会说是的,使用shebang本质上更好。

亲:

如果您将所有脚本放在您的$PATH(可能/usr/local/bin~/bin)中并将它们标记为可执行文件,那么您可以按名称执行它们,而无需考虑需要调用哪个解释器(bash、Python、Ruby、Perl 等)。

如果您将一个以fooshebang命名的可执行文件放置在您的任何位置$PATH,您只需键入foo即可执行它。

骗局:

您必须#!/bin/bash在顶部和chmod +x文件中输入。

对于非常方便的回报,这是接近零的成本。