【问题标题】:Multiple shebangs to work for different OS多个shebangs适用于不同的操作系统
【发布时间】:2025-12-22 02:30:06
【问题描述】:

有没有办法让我拥有多个 shebangs?

所以我可以在 Ubuntu 上调用 #!/usr/bin/env python3,但 MacOS 似乎没有对应的,我想在它上面调用 #!/usr/bin/python3

那么有没有可能做这样的事情:

#!/usr/bin/env python3
#!/usr/bin/python3

【问题讨论】:

    标签: python linux macos shell shebang


    【解决方案1】:

    我们不能有多个 shebang 行 - 只能有一个,并且应该始终是第一行。

    如果您需要支持基于操作系统的多个 Python 版本,最好编写一个小的 shell 包装器,使用正确的解释器调用您的 python 脚本,可能使用exec

    macOS 确实有 /usr/bin/env


    看到这篇文章:

    【讨论】:

    • 我正在制作一个有 php 后端但使用一些 python 脚本的应用程序。出于某种原因,它不适用于一个系统,但在另一个系统上使用/usr/bin/env。 ubuntu 在 AWS 上
    • 一个 shbang 行规则有一个例外,如果第一个 shbang 行执行的程序本身可以理解如何处理多个 shbang 行,那么它可以工作。 nix-shell 可以做到这一点,人们使用它来动态加载脚本环境中的解释器和依赖项。
    最近更新 更多