在脚本中,我进入$0
了可能的相对路径。为了将其转换为绝对值,我发现了我不理解的解决方案:
abspath=$(cd ${0%/*} && echo $PWD/${0##*/})
我的问题是内部的魔法${0%/*}
和${0##*/}
。看起来前者提取目录名,而后者提取文件名,我只是不知道如何。
@Shawn:1个非常好的评论表决,因为您引入了正确的思想:“这使用了参数扩展,但对我不起作用”。该
—
D4RIO 2011年
dirname
实用程序在这里很有用。
mywiki.wooledge.org/BashFAQ/028和cyberciti.biz/faq/…说
—
Joel Purra 2014年
BASH_SOURCE
的要好于$0
,因为可以$0
输入用户键入的命令,而该命令可能不是当前正在执行的脚本。
readlink -f $0
来获取规范路径。