例如在目录/root/aaa/bbb下,存在脚本文件test.sh, 脚本文件中存在这样一句话,
BD=`dirname ${BASH_SOURCE[0]} `
,意思就是说获取脚本文件test.sh所在目录的路径,但在不同目录下执行脚本test.sh,BD的值会有所不同。 1、在/root/aaa/bbb下,执行test.sh,BD的值为 . 2、在/root/aaa/下,执行test.sh,BD的值为./bbb 3、在/root下,执行test.sh,BD的值为./aaa/bbb 其中,BASH_SOURCE[0]代表脚本文件所在目录及文件名;dirname命令是获取文件所在目录。 如果脚本文件所在目录的绝对路径,可以结合pwd命令,具体如下所示:
BD=`dirname ${BASH_SOURCE[0]}`
cd $BD
BASEDIR=`pwd`
,BASEDIR即为脚本文件test.sh的绝对目录,也即是/root/aaa/bbb。
来源:oschina
链接:https://my.oschina.net/u/1863491/blog/760484