對於
PATH=$(cd `dirname$0`;pwd)
和
直接用pwd獲取PATH=$(`pwd`)的區別
比如在/tst1/tst2/script下有一個test.sh腳本,腳本命令為:
#!/bin/sh PATH1=$(cd `dirname $0`;pwd) echo $PATH1 PATH2=$(`pwd`) echo $PATH2
當在script文件夾下執行腳本時,這兩個命令是沒有區別的,都是返回的test.sh所在文件夾的絕對位置
而他們真正的區別在於當不在script下執行腳本時
比如在tst2下執行腳本: ./script/test.sh
此時PATH1返回的仍然是test.sh所在的絕對路徑,也及時/tst1/tst2/script
而PATH返回的則是當前執行的路徑,也就是/tst1/tst2
即pwd返回的是當前執行命令的路徑
因此如果要獲取執行腳本所在目錄時,應該使用
PATH=$(cd `dirname$0`;pwd)