BASH_SOURCE
BASH_SOURCE[0] 等价于 BASH_SOURCE, 取得当前执行的shell文件所在的路径及文件名。
如/home/abc/test.sh 内容如下:
#!/bin/sh
echo "${BASH_SOURCE[0]}"
echo "${BASH_SOURCE]}"
echo "$( dirname "${BASH_SOURCE[0]}" )"
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo $DIR
若当前目录在/home/,执行source ./abc/test.sh, 则输出:
./abc/test.sh
./abc/test.sh
./abc/
/home/abc
总之:
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
得到shell脚本文件所在完整路径(绝对路径)及文件名(无论source,sh,.三种调用方式),且不改变shell的当前目录。
posted on 2016-06-20 10:58 walkwalkwalk 阅读(462) 评论(0) 编辑 收藏 举报