Shell 特殊變數

2021-08-09 23:18:11 字數 1525 閱讀 1737

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 是乙個數字,表示第幾個...