Shell中使用 pwd
命令可以获得当前工作目录,然而『当前工作目录』可能并不是『脚本文件所在目录』。
# /home/user/scripts/getmydir.sh
MYDIR=`pwd`
echo $MYDIR
# 在 /home/user/scripts目录下执行
$ ./getmydir.sh
/home/user/scripts
# 在 /home/user 目录下执行
$ ./scripts/getmydir.sh
/home/user
可以看出,pwd
获取的『当前工作目录』可能并不是『脚本文件所在目录』。因此我们可以用以下方法获取脚本文件所在目录的绝对路径:
MYDIR=`dirname $0`