在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。
这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。
PROC_PATH为脚本所在位置相对于当前命令执行路径的相对路径,如果执行命令所在路径与源文件所在路径完全不相同,PROC_PATH就为绝对路径。
在/home/cathywa/robin/smallrobin下建立dirname_test.sh文件。
1 #!/bin/ksh
2 WORK_PATH=`pwd`
3 PROC_PATH=`dirname $0`
4 echo $WORK_PATH
5 echo $PROC_PATH
在/home/cathywa/robin/smallrobin下执行,运行结果为:
/home/cathywa/robin/smallrobin
.
转到上上级目录在/home/cathywa下执行,运行结果为:
/home/cathywa
robin/smallrobin