例如:DIR="$( cd "$(dirname "$0")" ; pwd -P )"
解析:
$0 类似于python中的sys.argv[0]等。 $0指的是Shell本身的文件名。类似的有如果运行脚本的时候带参数,那么$1 就是第一个参数,依此类推。
dirname 用于取指定路径所在的目录 ,如 dirname /home/ikidou 结果为 /home。
$ 返回该命令的结果
pwd -P 如果目录是链接时,格式:pwd -P 显示出实际路径,而非使用连接(link)路径
一、pwd和dirname
1、pwd返回的是当前目录,“print name of current/working directory”,但并不一定是脚本存放的目录,如下所示,当在~/c-example路径下执行
pwd得到结果并不是脚本所在的路径
2、dirname $0在命令行状态下返回" . ",而在脚本中返回的是脚本所在的路径,且是脚本所在路径相对于命令执行时的路径
是test.sh相对于命令执行时的相对路径
3、二者的区别可由如上示例看到:pwd会随着cd等指令而变化,但最开始由dirname $0得到的相对路径是一个固定参数。