shell運算符

1.基本運算

+ : 加
- : 減
* : 乘
/ : 除
% : 取余
基本語法:
(1)“$((運算式))”或“$[運算式]”

[root@localhost shelldata]# echo $((1+3))
4

[root@localhost shelldata]# echo $[3*7]
21

(2)expr 運算式

[root@localhost shelldata]# expr 1+4
1+4

[root@localhost shelldata]# expr 1 + 4
5

[root@localhost shelldata]# expr 3 /* 4
expr: 語法錯誤

[root@localhost shelldata]# expr 3 \* 4
12

[root@localhost shelldata]# expr `expr  2 + 3 ` \* 4
20

  • expr后面表達式數字和運算符之間必須空格隔開
  • expr后面表達式乘號(*)前邊必須加反斜杠(\)才能實現乘法運算;
2.關系運算符
  • 關系運算符只支持數字,不支持字符串,除非字符串的值是數字
  • 下表列出了常用的關系運算符,假定變量 a 為 10,變量 b 為 20:
運算符 說明 舉例 備注
-eq 檢測兩個數是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。 equal
-ne 檢測兩個數是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。 not equal
-gt 檢測左邊的數是否大于右邊的,如果是,則返回 true。 [ $a -gt $b ] 返回 false。 greater than
-lt 檢測左邊的數是否小于右邊的,如果是,則返回 true。 [ $a -lt $b ] 返回 true。 less than
-ge 檢測左邊的數是否大于等于右邊的,如果是,則返回 true。 [ $a -ge $b ] 返回 false。 great than or equal
-le 檢測左邊的數是否小于等于右邊的,如果是,則返回 true。 [ $a -le $b ] 返回 true。 less than or equal
3.布爾運算符

下表列出了常用的布爾運算符,假定變量 a 為 10,變量 b 為 20:

運算符 說明 舉例
! 非運算,表達式為 true 則返回 false,否則返回 true。 [ ! false ] 返回 true。
-o 或運算,有一個表達式為 true 則返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a 與運算,兩個表達式都為 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。
4.邏輯運算符

以下介紹 Shell 的邏輯運算符,假定變量 a 為 10,變量 b 為 20:

運算符 說明 舉例
&& 邏輯的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false
|| 邏輯的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true
5.字符串運算符

下表列出了常用的字符串運算符,假定變量 a 為 "abc",變量 b 為 "efg":

運算符 說明 舉例
= 檢測兩個字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
!= 檢測兩個字符串是否相等,不相等返回 true。 [$a != $b ] 返回 true。
-z 檢測字符串長度是否為0,為0返回 true。 [ -z $a ] 返回 false。
-n 檢測字符串長度是否為0,不為0返回 true。 [ -n "$a" ] 返回 true。
$ 檢測字符串是否為空,不為空返回 true。 [ $a ] 返回 true。
6.文件測試運算符

文件測試運算符用于檢測 Unix 文件的各種屬性。
屬性檢測描述如下:

操作符 說明 舉例
-d file 檢測文件是否是目錄,如果是,則返回 true。 [ -d $file ] 返回 false。
-f file 檢測文件是否是普通文件(既不是目錄,也不是設備文件),如果是,則返回 true。 [ -f $file ] 返回 true。
-r file 檢測文件是否可讀,如果是,則返回 true。 [ -r $file ] 返回 true。
-w file 檢測文件是否可寫,如果是,則返回 true。 [ -w $file ] 返回 true。
-x file 檢測文件是否可執(zhí)行,如果是,則返回 true。 [ -x $file ] 返回 true。
-s file 檢測文件是否為空(文件大小是否大于0),不為空返回 true。 [ -s $file ] 返回 true。
-e file 檢測文件(包括目錄)是否存在,如果是,則返回 true。 [ -e $file ] 返回 true。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Shell 基本運算符 Shell 支持的運算符包括算數運算符關系運算符布爾運算符字符串運算符文件測試運算符 算數...
    CircusJonathan閱讀 534評論 0 0
  • Shell 和其他編程語言一樣,支持多種運算符,包括: 算數運算符 關系運算符 布爾運算符 字符串運算符 文件測試...
    孤月環(huán)舟閱讀 350評論 0 0
  • shell支持多種運算符 算術運算符 關系運算符 邏輯運算符 字符串運算符 文件測試運算符 1.算術運算符 原生b...
    螞蟻牙齒不黑閱讀 293評論 0 0
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,361評論 0 10
  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,744評論 0 5

友情鏈接更多精彩內容