bash 比較運算總結

2021-07-31 11:41:49 字數 796 閱讀 6860

宣告:本文內容部分有待驗證內建命令,

兩者完全等價,可測試的範圍:

1.1. 算術比較:-eq,-ne,-le,-gt等,其中,e->equal, n->not, l->littler, g->greater,t->than;

1.2. 字元比較:=,==,>,<等,其中,=和==意義相同,《和》在shll中有特殊含義須轉義;

1.3. 檔案測試:-d(irectory),-e(xist),-f(ile), -h(ardlink), -r(ead)等;

1.4. shell測試: -o nounset等;

#說明,多個expr可以通過-a -o 或!進行組合,()可以用來改變結合的優先順序,但是須轉義。

組合命令,

測試條件

1.1~1.4同樣適用於

不同點:

2.1 <>按locale設定排序;而在test中按ascii排序

2.2 使用&&和|| 代替-a 和-o, -o 和-a 一般都是搭配test 命令或者

2.2 =~執行正則匹配;

$[[ $a =~ z* ]]         # 如果$a 以"z"開頭(正則匹配),那麼將為true

$[[ $a == "z*" ]] # 如果$a 等於z* (字元匹配),那麼結果為true

本義是用來計算算術表示式的,同let;

由於數值也能被當作邏輯值,所以(())也能當作測試條件: 數值0表示邏輯假,非0表示邏輯真

不需要對 (( 和 )) 之間的操作符轉義

man bash

bash 比較運算子

bash 比較運算子 運算子 描述 示例 檔案比較運算子 e filename 如果 filename 存在,則為真 e var log syslog d filename 如果 filename 為目錄,則為真 d tmp mydir f filename 如果 filename 為常規檔案,則為...

bash 比較運算子

運算子 描述 示例 檔案比較運算子 e filename 如果 filename 存在,則為真 e var log syslog d filename 如果 filename 為目錄,則為真 d tmp mydir f filename 如果 filename 為常規檔案,則為真 f usr bin...

比較bash和perl的比較運算子(糾結)

bash 整數比較 eq 等於,如 if a eq b ne 不等於,如 if a ne b gt 大於,如 if a gt b ge 大於等於,如 if a ge b lt 小於,如 if a lt b le 小於等於,如 if a le b 小於 需要雙括號 如 a b 小於等於 需要雙括號 如...