有没有办法检索UNIX shell用于给定脚本的解释器路径? (最好是在Python API中或作为shell命令)?
要像这样使用:
$ get_bang ./myscript.py
/usr/bin/python3
当然我可以使用RE手动提取它,但我确信在现实世界中比处理第一行更复杂,我不想重新发明轮子。
我需要这个的原因是我想从另一个脚本中调用脚本,我想将参数添加到解释器。
答案 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