问题标签 [shebang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
18653 浏览

shell - Shebang 和 Groovy

是否可以在文件开头声明它应该作为 Groovy 脚本执行?

其他脚本语言的示例:

0 投票
1 回答
22554 浏览

python - python shebangs 与 /usr/bin/env 而不是硬路径有什么区别?

我以前用shebang

什么时候使用比较好

它们之间的确切区别是什么?

0 投票
8 回答
2546 浏览

python - 如何修复在某些系统上无法识别的 shebang 标志

出于某种原因,-O我访问的 Red Hat Enterprise Server(版本 5.3)上的 shebang 行中无法识别(优化的)标志。在其他系统上,可以毫无问题地识别标志。

在 OS X 上执行下面的脚本可以正常工作。-O可以验证标志的识别,因为它在if __debug__条件下启用(当不存在时)或禁用(当给定时)任何东西:

在 RHE 系统上执行相同的脚本会导致:

/usr/bin/env: python -O: 没有这样的文件或目录

没有该-O标志,脚本将在 RHE 系统上正常执行(即,__debug__内置变量将设置为True)。

有没有跨平台的方法来解决这个问题?是否有一种特定于平台的方法可以将 shebang 行上的标志问题修复到 python 解释器?

编辑:在解释器范围 内设置变量(不使用 shebang 标志)的任何其他解决方法__debug__也会很有趣。

0 投票
5 回答
7750 浏览

python - 符号“#!”是什么意思?在 Python 中是什么意思?

这行代码是什么意思?没有它,我的python3 http服务器无法理解,让浏览器下载一个空的.py文件(依赖于.py文件的链接)

0 投票
4 回答
2065 浏览

python - 如何使用适当的 python 版本启动 python 程序?

给定一组python程序:

它们存储在共享网络目录中,在混合环境(Solaris 和不同风格的 Linux)中执行,并且都需要特定的 python 版本,该版本可能不在用户 $PATH 中,并且可能不会安装在同一位置不同类型的机器。

程序如何指定要使用的 python 解释器?

我考虑过的替代方案:

  1. 每个 python 程序中的一个 shebang,引用一个 python 包装器,该包装器为当前类型的机器启动一个适当的 python 解释器。但是 execve 不允许将包装器可执行文件实现为 shell 脚本,并且为每台机器编译本机可执行文件需要大量维护。

  2. 为每个 python 程序制作一个启动 shell 脚本。所有的 shell 脚本可能共享相同的逻辑来选择 python 解释器,但如果可能的话,我想避免为每个 python 程序使用单独的 shell 脚本。

  3. 进行某种 hack 以使每个程序都可以作为 shell 脚本和 python 程序运行,类似于:

你还有其他想法吗?

0 投票
4 回答
2609 浏览

python - Python 脚本:在 Shell 中运行,但由于无法导入模块而在现实生活中失败

我有一个在 Python Shell 中运行良好的脚本,但是当双击时它无法导入 PIL 模块(但它确实在 Shell 中导入了 PIL 模块)。

怎么了?我需要一个不同的shebang吗?我在 Windows 7 上:

0 投票
2 回答
3838 浏览

python - 使用 shebang 使用 subprocess.call 执行 python 脚本

我正在用 Python 3 编写一个(有点)模块化应用程序,我想从中运行任意程序,所说的程序是在运行时指定的,不一定是 python 脚本。

所以我用例如,

如果spam是一个 python 脚本,具有 shebang topython3和可执行权限,我得到

如果我

它工作正常。

你知道为什么吗?我如何在spam不指定的情况下运行python3

0 投票
2 回答
1817 浏览

ruby-on-rails - 有相对的shebang线

我正在编写一个 Rails 应用程序,需要通过来运行脚本./script/runner

虽然我可以把

在顶部,这在需要更像的生产环境中不起作用

因为./script不在我的路上,我不希望它是,我怎么能允许它被设置,

我正在使用 cron 作业在 Linux 机器上运行它

0 投票
4 回答
1060 浏览

command-line - #!/usr/bin/env 和进程名称:可移植性是有代价的?

有很多很好的 理由使用 #! /usr/bin/env. 底线:它使您的代码更具可移植性。嗯,有点。看一下这个....


我有两个几乎相同的脚本,bintest.py

envtest.py

请注意,它们仅在shebangs上有所不同。


bintest.py按预期运行

envtest.py做了一些不太理想的事情


我们看到的是 using#! /usr/bin/env导致进程收到名称“python”而不是“envtest.py”,从而使我们killall无效。在某种程度上,我们似乎已经将一种可移植性换成了另一种:我们现在可以轻松地更换 python 解释器,但我们已经失去了命令行上的“kill-ability”。那是怎么回事?如果这里有实现两者的最佳实践,那是什么?

0 投票
5 回答
17880 浏览

windows - 在 Windows 命令提示符中使用 shebang/hashbang

我目前正在使用serve脚本在 Windows 7 上使用Node.js提供目录。它在 MSYS shell 或 using 中运行良好sh,因为我已将 node.exe 和 serve 脚本放在我的 ~/bin 中(即在我的 PATH 上),并且只输入“serve”是有效的,因为它是Shebang ( #!) 指令,它告诉 shell 使用 node.js 运行它。

但是,Windows 命令提示符似乎不支持没有 *.bat 或 *.exe 扩展名的普通文件,也不支持 shebang 指令。是否有任何注册表项或其他黑客可以强制这种行为脱离内置cmd.exe

我知道我可以编写一个简单的批处理文件来使用节点运行它,但我想知道它是否可以在内置的方式中完成,所以我不必为这样的每个脚本编写脚本?

更新:实际上,我在想,是否可以为所有“找不到文件”等编写一个默认处理程序,我可以自动尝试在其中执行sh -c

谢谢。