从bash脚本中确定bash脚本的目录

时间:2019-03-11 16:57:03

标签: python bash shell

该问题与我提出的上一个问题(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等后如何进行操作(herehere)...但是这些似乎不适用于这种高度独特的用途情况

0 个答案:

没有答案