该问题与我提出的上一个问题(here)直接相关。其要旨是用shell脚本替换shebang,该脚本可动态确定python解释器在整个系统中的位置,并且在大多数情况下都有效。
这里是例外。在python文件的顶部,我使用以下shebang语句:
#!./pyshebang.sh
shell脚本与我所有的Python文件都位于同一目录中。只要您从同一目录运行Python,此方法就可以正常工作。
~/bin/Python> test.py
Shebang must work because this is a Python print statement
现在,如果我备份一个目录,它将失败,因为语句“ ./pyshebang.sh”现在在启动脚本的父目录中查找。
~/bin> Python/test.py
bash: Python/test.py: ./pyshebang.sh: bad interpreter: No such file or directory
所以问题是……有人有什么新颖的主意如何用
代替上述的shebang吗?#!<path to current file>/pyshebang.sh
我想要在路径之前输入一些内容,以获取当前脚本的路径,因此,如果从其他位置调用文件,它将知道在哪里可以找到我的Shell脚本。有很多很棒的文章显示了您使用Python或bash等后如何进行操作(here,here)...但是这些似乎不适用于这种高度独特的用途情况