问题标签 [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 投票
1 回答
11019 浏览

javascript - 让 Node.js 支持 JavaScript 文件的 shebang (#!)

一些脚本语言(例如 Python 或 Bash)#用于注释。

我可以运行脚本:

或者

是否可以让 JavaScript 支持 shebang?

0 投票
2 回答
1528 浏览

php - PHP shebang 不合适?

我打算在 php 脚本中添加一个 shebang 行

但我环顾四周,人们似乎没有这样做。

shebang一个php文件是“不合适的”还是违反了某些规则?

0 投票
3 回答
7946 浏览

linux - bash 和 linux 内核中的 Shebang 行限制

我正在尝试执行由 zc.buildout 自动生成的 python 脚本,所以我无法控制它们。我的问题是 shebang 行(#!)对于 bash(80 个字符限制)或直接执行(一些我不知道的 Linux 内核常量)来说太长了。

这是一个示例脚本,可帮助您重现我的问题:

如何将 bash 或内核配置为允许更大的 shebang 行?

0 投票
2 回答
871 浏览

javascript - 是否可以使用 shebang 但以某种方式从 JavaScript 解释器中“隐藏”它?

我想我的问题很难解读(请随意完善它)。但它与脚本中 shebang 行的使用有关——特别是在这种情况下是 JavaScript。假设我有这个phantomjs脚本:

我怀疑这是一个非常荒谬的问题,但是:

是否有任何可能的技巧可以让您在上面的代码中保留 shebang 行 - 这样您就可以执行文件而无需在脚本执行前加上(在这种情况下)phantomjs- 并且仍然可以在 JavaScript 中没有错误地解释它?

如果没有,是否有任何其他语言解释器(例如 Ruby、Python)“接受”shebang 行,或者更好的是,有办法忽略它们?

0 投票
2 回答
103 浏览

perl - Perl 5.6 脚本需要(调用)一个 Perl 5.10 脚本

我有一个脚本 foo.pl,它的 sheebang 行指向 Perl 5.6 二进制文件。foo.pl “需要”另一个脚本 bar.pl,它的 sheebang 行具有 Perl 5.10。

有没有人遇到过这种情况?任何帮助,将不胜感激。

PS 由于项目中的依赖性,无法将使用 5.6 的脚本更改为最新的 Perl 版本。所以,我需要和那里的任何东西一起生活。

0 投票
1 回答
7405 浏览

php - 如何制作可执行的phar?

我想将 phar 脚本作为可执行文件直接启动,foo.phar <params>而不是php foo.phar <params>.

0 投票
4 回答
16148 浏览

perl - #!/usr/bin/perl 中的 -T 或 -w 有什么意义?

我用谷歌搜索#!/usr/bin/perl,但找不到任何令人满意的答案。我知道这是一个非常基本的事情,但是,仍然可以解释我#!/usr/bin/perl在 Perl 中的意义是什么?此外,在 中-w-T表示#!/usr/bin/perl什么?我是 Perl 的新手,所以请耐心等待。

0 投票
4 回答
11609 浏览

python - 当python文件必须使用#!/bin/env python时处理多个python版本

我有这个问题:

System A运行 Ubuntu 并且需要Python 2.6一堆不同的东西。
我在本机Python 2.7上单独安装。System A
System BPython 2.7

我有一个 python 脚本BLAH,上面写着#!/bin/env python
再往下,它执行另一个脚本SIGH,上面也说:#!/bin/env python.

BLAH需要在System Aor上运行System B,并且它总是需要运行Python 2.7

----
到目前为止我的解决方案的一部分:
有一个包装脚本首先尝试查看是否which python指向 Python 2.7
如果没关系,那么BLAH使用该路径运行 python。
否则尝试which python2.7使用该路径运行BLAH,并将该路径添加到env PATH.

此解决方案的问题是:

On System A(单独安装了 Python 2.7)执行
BLAH,由于我编写了包装脚本,它与 Python 2.7 一起运行(到目前为止还可以..)
BLAHspawns时SIGHSIGH使用 shebang 在路径中查找 python 然后它遇到了麻烦,因为它是在env's中寻找 python,PATH它应该python2.7在路径中寻找。

有没有一种干净的方法来处理这个问题?

提前致谢!

0 投票
2 回答
386 浏览

python - 为什么直接运行脚本不起作用但“python script_name.py”起作用

我写了一个脚本来从网站上抓取数据。当我使用“python script.py”运行它时它可以工作,但是当 chmod +x 并直接从 shell 运行时,它不能正常工作(不覆盖输出文件)

这是我的代码(尝试使用 HTMLParser):

这是我的外壳的结果

脚本仍然打印出最后一行完成!数据打印到文件 kq.txt但实际上并没有。如果我删除 kq.txt 文件,它运行良好。如果我在 kq.txt 中稍作更改(更改一个数字),它也能正常工作。

谁能解释为什么?谢谢

0 投票
2 回答
1775 浏览

ruby - 何时/为什么将 --env-shebang 与红宝石宝石一起使用?

Ikenna Okpala 推荐了这个.gemrc(我稍微修改了一下):

我之前没有注意到--env-shebang--env-shebang我在http://guides.rubygems.org/command-reference/上查找了文档:

实际上,为什么这个--env-shebang选项很重要?(我从未使用过它。)