在 Linux 中,我们通常在脚本中添加一个shebang 来调用相应的解释器。我尝试了以下示例。

我写了一个没有shebang且具有可执行权限的shell脚本。我能够使用 ./ 执行它。但是如果我写一个类似的python程序,没有shebang,我就无法执行它。

为什么会这样?据我了解,需要shebang找翻译。那么 shell 脚本是如何工作的,而不是 python 脚本呢?

最佳答案

这里有一个微妙的区别。如果目标是二进制文件或以 #! shebang 行开头,则 shell 成功调用 execv。如果目标是一个没有 shebang 的文本文件,那么对 execv 的调用将失败,shell 可以自由地尝试在 /bin/sh 或其他东西下启动它。

关于python - 在 shell 脚本中使用 shebang,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18964553/

10-10 10:27