Linux Shell里的BASH_SOURCE
作用
BASH_SOURCE[0]
等价于 BASH_SOURCE
,取得当前执行的 shell 文件所在的路径及文件名
dirname
去除文件名中的非目录部分,仅显示与目录有关的部分
示例
1. 假如当前目录为/root/var,执行source ./test/bash_source.sh
[root@i var]
/root/var
[root@i var]
[root@i var]
2. 添加内容如下:
#!/bin/bash
echo "${BASH_SOURCE[0]}"
echo "${BASH_SOURCE}"
echo "$( dirname "${BASH_SOURCE[0]}" )"
DIR="$( cd "$( dirname ${BASH_SOURCE[0]} )" && pwd )"
echo $DIR
3. 执行脚本
[root@i var]
./test/bash_source.sh
./test/bash_source.sh
./test
/root/var/test
常用
DIR="$( cd "$( dirname ${BASH_SOURCE[0]} )" && pwd )"
echo $DIR