1. $? 表示上乙個命令退出的狀態
#正確命令的退出狀態一般為「0」,不正確的命令會是乙個不為「0」的數字
#輸入乙個正確的ls命令
[root@master ~]# ls
[root@master ~]# echo $?
0#輸入乙個錯誤命令
[root@master ~]# l0
-bash: l0: command not found
[root@master ~]# echo $?
127
2. $$ 表示當前程序編號
[root@master ~]# echo $$
29137
3. $0 表示當前指令碼名稱
#建立test01.sh指令碼
[root@master ~]# vi test01.sh
echo $0
[root@master ~]# chmod 777 test01.sh
#執行指令碼後會顯示指令碼名稱
[root@master ~]# ./test01.sh
./test01.sh
4. $n 表示n位置的輸入引數(n代表數字,n>=1)
[root@master ~]# vi test01.sh
echo "parameter01:"$1
echo "parameter02:"$2
parameter02:banana
5. $# 表示引數的個數,常用於迴圈
此特殊變數不常用,在此不做演示
6. $*和$@ 都表示引數列表
在指令碼中使用echo輸出$*和$@,兩變數的輸出結果沒有區別;
區別在於當兩變數使用雙引號引起來的時候,$*會以「$1$2$3...」格式輸出,$@則會分開輸出變數
[root@master ~]# vi test.sh
echo '直接使用$*:'$*
echo '直接使用$@:'$@
echo 'for迴圈中使用$*:'
for p in $*
doecho $p
done
echo 'for迴圈中使用$@:'
for p in $@
doecho $p
done
echo 'for迴圈中使用雙引號的$*:'
for p in "$*"
doecho $p
done
echo 'for迴圈中使用雙引號的$@:'
for p in "$@"
doecho $p
done
for迴圈中使用$*:
banana
for迴圈中使用$@:
banana
for迴圈中使用雙引號的$*:
for迴圈中使用雙引號的$@:
banana
shell 特殊變數
變數解釋 展開為 1c 2c 3c 4c 5c.其中字母c為變數 ifs 的第乙個字母,ifs預設為空.展開為 1 2 3 4 5 引數個數 上乙個命令的返回值 當前指令碼的程序id pid 上乙個後台執行程序的程序號.上乙個命令的最後乙個引數.下面的aaa bbb 為變數名 如果 aaa為空或未定...
Shell特殊變數
變數名只能包含數字 字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。例如,表示當前shell程序的id,即pid,看下面的 echo 執行結果29949 特殊變數列表 變數含義 0 當前指令碼的檔名 n傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如,第乙...
shell 特殊變數
前面已經講到,變數名只能包含數字 字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。例如,表示當前shell程序的id,即pid,看下面的 echo 執行結果29949 特殊變數列表 變數 含義 0 當前指令碼的檔名 n傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個...