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

时间:2015-01-09 15:13:54

标签: python shell shebang

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

要像这样使用:

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

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

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

2 个答案:

答案 0 :(得分:2)

实际上,它并不比第一行的阅读(第一个单词)复杂。

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

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

答案 1 :(得分:2)

许多方式 - 例如:

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

打印例如

/bin/sh

或(如果是多字)

/usr/bin/env perl

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