我想要一个源代码的shell脚本来确定它自己的位置,并且我发现这对于破折号来说是一项艰巨的任务。如何找到脚本作为源代码的路径?
在bash,sh和csh中,我可以使用:$_
。
在鱼,我可以使用(status -f)
。
在短跑,我有没有运气...
我试图采购结果如下如下所示的path.sh文件:
# path.sh
called=$_
echo called: $called
echo underscore: $_
echo zero: $0
echo dash_source: $DASH_SOURCE
echo bash_source: $BASH_SOURCE
dash -c ". path.sh"
输出:
called: /usr/local/bin/dash
underscore: /usr/local/bin/dash
zero: dash
dash_source:
bash_source:
我怎样才能得到破折号path.sh的路径?
因此,如果用户碰巧正在运行破折号外壳,我必须要求他们从特定路径中获取我的文件? – ben
您可以在脚本中硬编码路径,但在您的情况下这可能不可行。你为什么需要知道路径?你还有其他的文件要去找吗? – Kevin
准确地说 - 我需要为项目主页设置一个环境变量,然后访问与该路径相关的一些其他文件。硬编码绝对路径不是一种选择。 – ben