1. 程式人生 > >Shell 基本運算子

Shell 基本運算子

轉載:http://www.runoob.com/linux/linux-shell-basic-operators.html

Shell 和其他程式語言一樣,支援多種運算子,包括:

  • 算數運算子
  • 關係運算符
  • 布林運算子
  • 字串運算子
  • 檔案測試運算子

原生bash不支援簡單的數學運算,但是可以通過其他命令來實現,例如 awk 和 expr,expr 最常用。

expr 是一款表示式計算工具,使用它能完成表示式的求值操作。

例如,兩個數相加(注意使用的是反引號 ` 而不是單引號 '):

#!/bin/bash

val=`expr 2 + 2`
echo "兩數之和為 : $val"

執行例項 »

執行指令碼,輸出結果如下所示:

兩數之和為:4

兩點注意:

  • 表示式和運算子之間要有空格,例如 2+2 是不對的,必須寫成 2 + 2,這與我們熟悉的大多數程式語言不一樣。
  • 完整的表示式要被 ` ` 包含,注意這個字元不是常用的單引號,在 Esc 鍵下邊。

算術運算子

下表列出了常用的算術運算子,假定變數 a 為 10,變數 b 為 20:

運算子 說明 舉例
+ 加法 `expr $a + $b` 結果為 30。
- 減法 `expr $a - $b` 結果為 -10。
* 乘法 `expr $a \* $b` 結果為  200。
/ 除法 `expr $b / $a` 結果為 2。
% 取餘 `expr $b % $a` 結果為 0。
= 賦值 a=$b 將把變數 b 的值賦給 a。
== 相等。用於比較兩個數字,相同則返回 true。 [ $a == $b ] 返回 false。
!= 不相等。用於比較兩個數字,不相同則返回 true。 [ $a != $b ] 返回 true。

注意:條件表示式要放在方括號之間,並且要有空格,例如: [$a==$b] 是錯誤的,必須寫成 [ $a == $b ]

例項

算術運算子例項如下:

#!/bin/bash# author:菜鳥教程# url:www.runoob.com

a=10
b=20

val=
`expr $a + $b` echo "a + b : $val" val=`expr $a - $b` echo "a - b : $val" val=`expr $a \* $b` echo "a * b : $val" val=`expr $b / $a` echo "b / a : $val" val=`expr $b % $a` echo "b % a : $val"if[ $a == $b ]then echo "a 等於 b"fiif[ $a != $b ]then echo "a 不等於 b"fi

執行指令碼,輸出結果如下所示:

a + b :30
a - b :-10
a * b :200
b / a :2
b % a :0
a 不等於 b

注意:

  • 乘號(*)前邊必須加反斜槓(\)才能實現乘法運算;
  • if...then...fi 是條件語句,後續將會講解。
  • 在 MAC 中 shell 的 expr 語法是:$((表示式)),此處表示式中的 "*" 不需要轉義符號 "\" 。

關係運算符

關係運算符只支援數字,不支援字串,除非字串的值是數字。

下表列出了常用的關係運算符,假定變數 a 為 10,變數 b 為 20:

運算子 說明 舉例
-eq 檢測兩個數是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 檢測兩個數是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 檢測左邊的數是否大於右邊的,如果是,則返回 true。 [ $a -gt $b ] 返回 false。
-lt 檢測左邊的數是否小於右邊的,如果是,則返回 true。 [ $a -lt $b ] 返回 true。
-ge 檢測左邊的數是否大於等於右邊的,如果是,則返回 true。 [ $a -ge $b ] 返回 false。
-le 檢測左邊的數是否小於等於右邊的,如果是,則返回 true。 [ $a -le $b ] 返回 true。

例項

關係運算符例項如下:

#!/bin/bash# author:菜鳥教程# url:www.runoob.com

a=10
b=20if[ $a -eq $b ]then
   echo "$a -eq $b : a 等於 b"else
   echo "$a -eq $b: a 不等於 b"fiif[ $a -ne $b ]then
   echo "$a -ne $b: a 不等於 b"else
   echo "$a -ne $b : a 等於 b"fiif[ $a -gt $b ]then
   echo "$a -gt $b: a 大於 b"else
   echo "$a -gt $b: a 不大於 b"fiif[ $a -lt $b ]then
   echo "$a -lt $b: a 小於 b"else
   echo "$a -lt $b: a 不小於 b"fiif[ $a -ge $b ]then
   echo "$a -ge $b: a 大於或等於 b"else
   echo "$a -ge $b: a 小於 b"fiif[ $a -le $b ]then
   echo "$a -le $b: a 小於或等於 b"else
   echo "$a -le $b: a 大於 b"fi

執行指令碼,輸出結果如下所示:

10-eq 20: a 不等於 b
10-ne 20: a 不等於 b
10-gt 20: a 不大於 b
10-lt 20: a 小於 b
10-ge 20: a 小於 b
10-le 20: a 小於或等於 b

布林運算子

下表列出了常用的布林運算子,假定變數 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。

例項

布林運算子例項如下:

#!/bin/bash# author:菜鳥教程# url:www.runoob.com

a=10
b=20if[ $a != $b ]then
   echo "$a != $b : a 不等於 b"else
   echo "$a != $b: a 等於 b"fiif[ $a -lt 100-a $b -gt 15]then
   echo "$a 小於 100 且 $b 大於 15 : 返回 true"else
   echo "$a 小於 100 且 $b 大於 15 : 返回 false"fiif[ $a -lt 100-o $b -gt 100]then
   echo "$a 小於 100 或 $b 大於 100 : 返回 true"else
   echo "$a 小於 100 或 $b 大於 100 : 返回 false"fiif[ $a -lt 5-o $b -gt 100]then
   echo "$a 小於 5 或 $b 大於 100 : 返回 true"else
   echo "$a 小於 5 或 $b 大於 100 : 返回 false"fi

執行指令碼,輸出結果如下所示:

10!=20: a 不等於 b
10小於10020大於15:返回true10小於10020大於100:返回true10小於520大於100:返回false

邏輯運算子

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

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

例項

邏輯運算子例項如下:

#!/bin/bash# author:菜鳥教程# url:www.runoob.com

a=10
b=20if[[ $a -lt 100&& $b -gt 100]]then
   echo "返回 true"else
   echo "返回 false"fiif[[ $a -lt 100|| $b -gt 100]]then
   echo "返回 true"else
   echo "返回 false"fi

執行指令碼,輸出結果如下所示:

返回false返回true

字串運算子

下表列出了常用的字串運算子,假定變數 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。
str 檢測字串是否為空,不為空返回 true。 [ $a ] 返回 true。

例項

字串運算子例項如下:

#!/bin/bash# author:菜鳥教程# url:www.runoob.com

a="abc"
b="efg"if[ $a = $b ]then
   echo "$a = $b : a 等於 b"else
   echo "$a = $b: a 不等於 b"fiif[ $a != $b ]then
   echo "$a != $b : a 不等於 b"else
   echo "$a != $b: a 等於 b"fiif[-z $a ]then
   echo "-z $a : 字串長度為 0"else
   echo "-z $a : 字串長度不為 0"fiif[-n $a ]then
   echo "-n $a : 字串長度不為 0"else
   echo "-n $a : 字串長度為 0"fiif[ $a ]then
   echo "$a : 字串不為空"else
   echo "$a : 字串為空"fi

執行指令碼,輸出結果如下所示:

abc = efg: a 不等於 b
abc != efg : a 不等於 b
-z abc :字串長度不為0-n abc :字串長度不為0
abc :字串不為空

檔案測試運算子

相關推薦

Shell程式設計三-Shell 基本運算子

Shell 基本運算子 Shell 和其他程式語言一樣,支援多種運算子,包括: 1.算術運算子 2.關係運算符 3.布林運算子 4.邏輯運算子 5.字串運算子 6.檔案測試運算子 原生bash不支援簡單的數學運算,但是可以通過其他命令來實現,例如 awk 和 expr,expr 最常用。 e

五.Shell 基本運算子

Shell 和其他程式語言一樣,支援多種運算子,包括: 算數運算子 關係運算符 布林運算子 字串運算子 檔案測試運算子 原生bash不支援簡單的數學運算,但是可以通過其他命令來實現,例如 awk 和 expr,expr 最常用。 expr 是一款表示式計算工具

Linux Shell基本運算子

shell基本運算子: 算術運算子 關係運算符 布林運算子 字串運算子 檔案測試運算子 注:原bash不支援簡單的數學運算。但可以通過awk 和expr(常用)命令來實現。 expr是一款表示式計算工具,它可以完成表示式的求值操作。 例: #兩個數相加使用的

Shell 基本運算子

轉載:http://www.runoob.com/linux/linux-shell-basic-operators.html Shell 和其他程式語言一樣,支援多種運算子,包括: 算數運算子 關係運算符 布林運算子 字串運算子 檔案測試運算子 原生bash不支援簡

shell基本運算子

下表列出了常用的算術運算子,假定變數 a 為 10,變數 b 為 20:  運算子       說明        舉例    +加法`expr $a + $b` 結果為 30。-減法`expr $a - $b` 結果為 -10。    *乘法`expr $a \* $b`

Shell入門(三)陣列、基本運算子

Shell 陣列 陣列中可以存放多個值。Bash Shell 只支援一維陣列(不支援多維陣列),初始化時不需要定義陣列大小(與 PHP 類似)。 與大部分程式語言類似,陣列元素的下標由0開始。 Shell 陣列用括號來表示,元素用”空格”符號分割開,語法格式如下: array_n

系統管理:shell基本命令1

ring 長度 ash linu 相同 文件的 提高 自動 tail 1.shell簡介   命令行:供用戶輸入命令的界面,本身只接受輸入,把命令傳遞給命令解釋器.   shell:shell是命令解釋器,也是一個程序,在用戶和操作系統之間提供一個面向行的可交互接口.   

shell--5、Shell 基本運算符

shell 基本運算符Shell 和其他編程語言一樣,支持多種運算符,包括:算數運算符關系運算符布爾運算符字符串運算符文件測試運算符原生bash不支持簡單的數學運算,但是可以通過其他命令來實現,例如 awk 和 expr,expr 最常用。expr 是一款表達式計算工具,使用它能完成表達式的求值操作。例如,兩

linux shell基本知識 sleep命令

cnblogs log style ash 基本 code bsp 知識 linux中 在有的shell(比如linux中的bash)中sleep還支持睡眠(分,小時) sleep 1 睡眠1秒 sleep 1s 睡眠1秒 sleep 1m 睡眠1

Hbase shell基本操作

records 例子 每次 edi operation sim pin binary file 1、啟動cd <hbase_home>/bin$ ./start-hbase.sh 2、啟動hbase shell # find hadoop-hbase dfs

Shell 基本運算符

普通 操作符 -c ron abc 包括 之間 兩數之和 是否 Shell 基本運算符 轉載自:http://www.runoob.com/linux/linux-shell-basic-operators.html Shell 和其他編程語言一樣,支持多種運算符,包括

Shell 基本運算符(轉)

邏輯運算符 targe 支持 設置 斜杠 常用 否則 add /var/ Shell 和其他編程語言一樣,支持多種運算符,包括: 算數運算符 關系運算符 布爾運算符 字符串運算符 文件測試運算符 原生bash不支持簡單的數學運算,但是可以通過其他命令來實現,例如 awk

shell基本知識

shel his hostname shell基礎 歷史記錄 usr dev bin 常用 shell基礎知識history命令 查看歷史記錄[root@localhost ~]# history1 echo $PATH2 echo $LANG3 loc

Linux學習閑談(一)——Shell基本操作與命令

模式 http 方括號 -a ali 入參 post lac 變量引用 Linux學習閑談(一) ——Shell基本操作與命令 (轉載請附上本文鏈接——linhxx) 1、#!/bin/sh 放在程序開頭,表示用/bin/sh方式來解析。 2、變量 1)變量賦值 v

01: shell基本使用

腳本 腳本文件 bash tro one gpo oca hid welcom 1.1 編寫登錄歡迎腳本 (1)新建腳本文件welcome.sh,用來輸出各種監控信息。 [root@localhost ~]# vi /root/welcome.sh #!/bin/bas

Kafka Shell基本命令(包括topic的增刪改查)

pre table kafka tool for del 生產 scribe 風險 本節內容: 創建kafka topic 查看所有topic列表 查看指定topic信息 控制臺向topic生產數據 控制臺消費topic的數據 查看topic某分區偏移量最大(小)值 增加

004-Shell 基本運算符、算術運算符、關系運算符、布爾運算符、輯運算符、字符串運算符、文件測試運算符

rwx sgid ble The 粘著位 val 一個表 有名管道 .sh 一、概述 Shell 和其他編程語言一樣,支持多種運算符,包括: 算數運算符 關系運算符 布爾運算符 字符串運算符 文件測試運算符 二、算術運算符   原生bash不支持簡

shell 基本操作小結

lena 取字符 ide text cond spa operation ava repl 1.echo和if else fi命令 #!/bin/bash echo hello;echo there filename=demo.sh if [ -e "$filename"

Shell基本命令

ron 環境變量path du -sh 編寫 regular 前言 末尾 文件類型 ble 前言 前面咱們已經成功安裝了Linux系統--centos7,那麽現在跟著超哥奔向Linux的大門。 那麽! 開局一張圖,裝備全靠打。。。 這個黑乎乎的是個什麽玩意?

shell基本語法

數學 多少 oca day nth nta 就是 引用 能夠 shell是一種腳本語言,可以使用邏輯判斷、循環等語法可以自定義函數、shell是系統命令的集合shell腳本可以實現自動化運維,能夠大大增加我們的運維效率 shell腳本結構 腳本開頭以#! /bin/bash