从给定的脚本文件中检索哈希 bang / shebang

retrieve hash bang / shebang from given script file

有没有办法检索 UNIX shell 将用于给定脚本的解释器的路径? (最好在 Python API 或 shell 命令中)?

这样使用:

$ get_bang ./myscript.py
/usr/bin/python3

当然我可以使用 RE 手动提取它,但我确信在现实世界中这比处理第一行要复杂得多,我不想重新发明轮子..

我需要这个的原因是我想从另一个脚本中调用脚本并且我想向解释器添加参数。

其实并不比读第一行(第一个字)复杂

尝试将 shebang 放在第二行(或者甚至只是在 # 之前放置一个 space),看看会发生什么。

另请参阅 http://www.in-ulm.de/~mascheck/various/shebang/ and http://homepages.cwi.nl/~aeb/std/hashexclam-1.html,了解关于 shebang 功能的更多信息。

多种方式 - 例如:

sed -n '1s/^#!//p' filename

例如打印

/bin/sh

或(如果是多字)

/usr/bin/env perl

或者什么都没有,如果这里不是 shebang