在最外层脚本(记为a.sh)中,可以适用如下参数获取脚本路径:
basepath=$(cd `dirname $0`; pwd)
但是,如果脚本内source其他脚本(记为b.sh),b.sh脚本内通过上述命令获取的路径,就是父脚本的路径,而不是b.sh的路径了,可以在b.sh内通过如下方式获取b.sh的路径:
basepath=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)
当然,第二种方法,完全可以用在父脚本、子脚本、孙脚本等各级中,并且获取到的是其脚本本身的路径,而不是父级、祖父级等脚本路径。
关于BASH_SOURCE环境变量介绍,可参考linux中BASH_SOURCE[0] – 天~宇~翱~翔 – 博客园
版权声明:本文为huangjin0507原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。