bash shell将当前文件的路径存储为变量?
这个问题在这里已经有了答案:
如果我对所有你想去的地方有所了解,我的建议就是
在一些更具体的结论中,命名项目根的单个变量应该是你真正需要的。 如果预期文件位于当前目录中,则不要求设置它。
export NUC_SEG_DIR=$HOME/nuclei_segmentation
在你的Python代码中,输入合理的默认值。 在这种特殊情况下,期望os.path.join(os.environ['NUC_SEG_DIR'], 'data')
指向你的data
目录,等等。如果用户想重写这个,用符号链接就足够简单了。 确保在代码中对此进行了参数化,以便在将来可以配置的情况下,很容易在单个位置进行覆盖。 也许类似
def nuc_seg(root_dir=os.environ['NUC_SEG_DIR'], data_dir='./data', model_dir='./models', output_dir='./output'):
if root_dir == '':
root_dir='.'
... your code here
并且稍后可能会让命令行界面让用户通过命令行选项或配置文件覆盖这些值。
同样,不要求用户编辑他们的.bash_profile
或类似的东西 - 如果他们想要在不同的目录中运行多个实验,或者其他什么? 他们可以弄清楚如何让环境变量永久化,或者如果你的用户不能熟悉shell的基本知识,你甚至可以将它作为一个选项来记录。
在脚本文件中使用dirname $0
来查找当前脚本文件所在的目录
上一篇: bash shell store path to current file as variable?
下一篇: bash script not running in nohup but working fine as stand alone