在shell腳本中,獲取當前腳本所在的絕對路徑,
script_dir=$(cd $(dirname $0);pwd)
dirname $0:獲取當前腳本所在的絕對目錄cd $(dirname $0):進入這個目錄pwd:顯示切換后腳本所在工作目錄
獲取腳本的上層目錄
dir=$(dirname $script_dir)
補充
dirname輸出去掉最后一個非斜杠目錄名和尾隨斜杠以后的剩余部分;如果目錄名不包含/,則輸出.(表示當前目錄)
dirname /usr/bin/ # 輸出 /usr
dirname dir1/str dir/str # 輸出 dir1或者dir2
dirname stdio.h # 輸出 .
$0:如果在當前目錄下執行腳本,獲取Shell本身的文件名;如果在其他目錄下執行腳本,獲取相對根目錄的完整腳本路徑。$$:Shell本身的PID(ProcessID)$#: 添加到Shell的參數個數 (待確認)$@:所有參數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數(待確認)$1~$n:添加到Shell的各參數值。$1是第1參數、$2是第2參數…$!:Shell最后運行的后台Process的PID$?:最后運行的命令的結束代碼(返回值)- $- 使用Set命令設定的Flag一覽
- $* 所有參數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。
