Linux shell - `dirname $0` 定位到运行脚本的相对位置
例1.
在/home/admin/test/下新建test.sh内容如下:
cd `dirname $0` echo `pwd`
然后返回到/home/admin/执行
sh test/test.sh
运行结果:
/home/admin/test
这样就可以知道一些和脚本一起部署的文件的位置了,只要知道相对位置就可以根据这个目录来定位,而可以不用关心绝对位置。这样脚本的可移植性就提高了,扔到任何一台服务器,(如果是部署脚本)都可以执行。
dirname 用于取指定路径所在的目录
$0 表示当前运行的命令
例2.
在~/server/colline/cluster5_2/bin下新建env.sh,coltaskmanager.sh,然后在coltaskmanager.sh中调用脚本env.sh
这个时候,我们可以这样实现:
. `dirname $0`/env.sh