在UNIX或LINUX上做开发,经常用到脚本。我就遇到这样一个问题:如何获得脚本文件所在路径呢?注意这个路径和当前工作路径是不同的,用`pwd`或${PWD}获得的是当前工作路径,不是我所要的最终结果。在网上搜了半天也没找到一个切实可行的办法,看来还得靠自己。下面把我的解决办法贴出来供大家分享吧:
举个例子:
在/home/john/tmp下建立脚本文件test.sh
1 #!/bin/bash
2
3 echo "The script is in ${PWD}"
在/home/john下执行它,得到输出为:The script is in /home/john
显然我们想要的是/home/john/tmp
我的解决办法:
1 #!/bin/bash
2
3 ROOT_PATH=`dirname ${PWD}/$0`
4
5 echo $ROOT_PATH
无论在什么路径执行这个脚本都可以得到正确的输出了:The script is in /home/john/tmp