當(dāng)前位置:首頁(yè) > IT技術(shù) > 系統(tǒng)服務(wù) > 正文

Shell變量或簡(jiǎn)單判斷選項(xiàng)
2021-09-24 14:50:42

預(yù)定義變量:

$?? :查看上一執(zhí)行命令返回值,若返回0則代表執(zhí)行成功,若返回非0,則執(zhí)行失敗,值的范圍:0~255

$#:腳本后帶的參數(shù)數(shù)量,如:

[root@localhost shell]# cat test.sh 
#!/bin/bash
echo $# #輸出執(zhí)行腳本時(shí),后面帶了幾個(gè)參數(shù)
[root@localhost shell]# ./test.sh 99 88 77
3 #腳本后面帶了3個(gè)參數(shù)


$?返回值參考

0      表示執(zhí)行成功
2 表示權(quán)限拒絕
1~125 表示運(yùn)行失敗,腳本命令、系統(tǒng)命令錯(cuò)誤或參數(shù)傳遞錯(cuò)誤
126 找到該命令,但是無(wú)法執(zhí)行
127 未找到要執(zhí)行的命令
>128 命令被系統(tǒng)強(qiáng)制結(jié)束

?

$$? :查看當(dāng)前腳本的PID

$n? :獲取當(dāng)前執(zhí)行的shell腳本的第n個(gè)參數(shù)值,n=1..9,當(dāng)n為0時(shí)表示腳本的文件名,如果n大于9,用大括號(hào)括起來(lái),例如:第10個(gè)參數(shù),${10}

$#? :獲取當(dāng)前shell命令行中的總個(gè)數(shù)

$*? :獲取當(dāng)前腳本中所有參數(shù)值,輸出為一整個(gè)字符串

$@:獲取當(dāng)前腳本中所有參數(shù)值,輸出為每一個(gè)參數(shù)值分開(kāi)

$ n? :n為正整數(shù),從0開(kāi)始,表示腳本中第幾個(gè)參數(shù),$0代表腳本本身,$1 代表腳本后第一個(gè)參數(shù),例如:

[root@localhost shell]# cat test.sh 
#!/bin/bash
echo $0 #輸出腳本名稱(chēng)
echo $1 #腳本后第一個(gè)參數(shù)
echo $2 #腳本后第二個(gè)參數(shù)

[root@localhost shell]# ./test.sh 9 8 7 67
./test.sh
9
8

判斷值:

-d:判斷是否為目錄

-f:判斷是否為文件

-e:判斷文件或目錄是否存在

-L:判斷文件是否為連接

-x:判斷文件是否有可執(zhí)行權(quán)限

-w:判斷文件是否有寫(xiě)權(quán)限

-r:判斷文件是否有讀權(quán)限

整數(shù)值對(duì)比:

-eq:等于

-ne:不等于

-gt:大于

-lt:小于

-ge:大于等于

-le:小于等于

字符串對(duì)比:

=? :匹配

!=? :不匹配

-z? ?:檢查字符串是否為空

邏輯判斷:

-a:邏輯與(and)

-o:邏輯或(or)

?。哼壿嫹?/p>

?

&& :邏輯與? ??

|| :邏輯或

?

通配符:

* :任意單個(gè)字符

?:任意單個(gè)字符

[]:任意單個(gè)字符

| :代表或

本文摘自 :https://blog.51cto.com/u

開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >