在命令行狀態下單純執行 $ cd `dirname $0` 是毫無意義的。因為他返回當前路徑的"."。
這個命令寫在腳本文件里才有作用,他返回這個腳本文件放置的目錄,並可以根據這個目錄來定位所要運行程序的相對位置(絕對位置除外)。
在/home/admin/test/下新建test.sh內容如下:
- cd `dirname $0`
- echo `pwd`
然后返回到/home/admin/執行
- sh test/test.sh
運行結果:
- /home/admin/test
這樣就可以知道一些和腳本一起部署的文件的位置了,只要知道相對位置就可以根據這個目錄來定位,而可以不用關心絕對位置。這樣腳本的可移植性就提高了,扔到任何一台服務器,(如果是部署腳本)都可以執行。