bash之判斷型別

2022-09-06 03:48:09 字數 1458 閱讀 2041

1.4.3.1判斷型別

算術判斷

注意一點:[ ]中左邊 「[」 必須要有空格,然後再到比較值,後邊的比較值也要有空格再到 「]」

-eq 表示 判斷是否相等 ,示例如下

[ 2 –eq 2 ] ; echo $?

輸出:0

[ 2 –ne 2 ] 表示不等

[ 3 –gt 1 ] 表示 ⼤於

[ 3 –ge 3 ] 表示 ⼤於等於

[ 3 –lt 4 ] 表示 ⼩於

[ 3 –le 3 ] 表示 ⼩於等於

(())也可以表⽰算術⽐較。((10>=8)) ,((10==10))

字串判斷

❖[ string1 = string2 ] 如果兩字串相同,則結果為真

a="xiaoyu"

b="hello xiaoyu"

[ "$a" = "$b" ];echo $?

輸出:0

❖ [ string1 != string2 ] 如果兩字串不相同,則結果為真

❖ [ -n "$var" ] 如果字串不是空,則結果為真

示例:[ -n "$b" ];echo $? 輸出:0

❖ [ -z "$var" ] 如果字串是空,則結果為真

❖ [[ "***x" == x* ]] 在表示式中表⽰0或者多個字元

示例:[[ "$b" == h* ]];echo $? 表示b是以h開頭的字元

❖ [[ *** == x?? ]] 在表示式中表⽰單個字元

在引⽤變數的時候要記得加雙引號[ -z "$a"] 否則當a未定義時會語法報錯

邏輯判斷

-a 表示邏輯與

[ 2 -ge 1 -a 3 -ge 4 ];echo $?

&& 表示邏輯與(拓展語法中,就是雙括號)

[[ 2 -ge 1 && 3 -ge 4 ]];echo $?

-o 表示邏輯或

[ 2 -ge 1 -o 3 -ge 4 ];echo $?

|| 表示邏輯或(拓展語法中,就是雙括號)

[[ 2 -ge 1 || 3 -ge 4 ]];echo $?

!表示邏輯⾮

[ ! 2 -ge 1 ];echo $?

內建判斷

❖ -e fifile 如果⽂件存在,則結果為真

示例:[ -e "10.wx" ]; echo $? 輸出:0 (因為我當前目錄存在檔案10.wx)

❖ -d fifile 如果⽂件是⼀個⼦⽬錄,則結果為真

❖ -f fifile 如果⽂件是⼀個普通⽂件,則結果為真

❖ -r fifile 如果⽂件可讀,則結果為真

❖ -s fifile 如果⽂件的長度不為0,則結果為真

❖ -w fifile 如果⽂件可寫,則結果為真

❖ -x fifile 如果⽂件可執⾏,則結果為真

❖ 是的擴充套件語法,在⽼的sh⾥並不⽀持。推薦⽤

bash之字串型別

1.4.2 字串型別 字串下標預設從0開始 s 12345678912333 echo s 輸出 345678912333 echo 輸出 345678912333 表示從下標為2的字元開始輸出 echo 輸出 3456 表示從下標為2的字元開始輸出,並且只輸出4個字元 echo 輸出 14 表示輸...

BASH系列之四比較和判斷語句

分類 linux作業系統 2011 08 13 16 35 25人閱讀收藏 舉報 shell中的比較和判斷 一 比較 操作符比較操作 整數操作 字串操作 相同 eq 不同 nq 大於 gt 小於 lt 大於等於 ge 小於等於 le 為空 z 不為空 n 範例 1 比較整數a和b是否相等 if a ...

js 正則之 判斷密碼型別

今天沒啥寫的,就分享個思路吧。之前在群裡討論的時候,謝亮兄弟說判斷密碼是否是純數字,純字母之類的。如果用 if 或者 switch 寫看著確實蛋疼,如果有 7,8 條判斷,那就老長一大段了。這個思路是我之前看 jquery 原始碼的時候學到的,感覺用在這也不錯。先來看 吧。function test...