Shell運算子使用

2021-09-29 07:16:55 字數 3833 閱讀 4076

文件

前提條件 a=10,b=20

運算子說明含義+

加法expr $a + $b結果為30-減法

expr $a - $b結果為-10*乘法

expr $a \* $b結果為200/除法

expr $a / $b結果為2%取餘

expr $a %$b結果為0=賦值

a=$b 將把變數b的值賦給a

==相等

用於比較兩個數字,相同則返回true [$a == $b] 返回false

!=不相等

用於比較兩個數字,不相同返回true [$a != $b] 返回true

運算子說明

含義-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

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

運算子說明含義!

非運算,表示式為true則返回false,否則返回true

[ !false ] 返回true

!-o或運算,有乙個表示式為true,則返回true

[ $a -lt 20 -o $b -gt 100 ] 返回true

-a與運算,兩個表示式為true才返回true

[ $a -lt 20 -a $a $b -gt 100 ] 返會false

運算子說明

含義&&

邏輯的and

[[ $a -lt 100 && $b -gt 100]] 返回false

||邏輯的or

[[ $a -lt 100

運算子說明含義=

檢測兩個字串是否相等,相等返回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

運算子說明

含義-b file

檢測檔案是否是塊裝置檔案,如果是,則返回 true。

[ -b $file ] 返回 false。

-c file

檢測檔案是否是字元裝置檔案,如果是,則返回 true。

[ -c $file ] 返回 false。

-d file

檢測檔案是否是目錄,如果是,則返回 true。

[ -d $file ] 返回 false。

-f file

檢測檔案是否是普通檔案(既不是目錄,也不是裝置檔案),如果是,則返回 true。

[ -f $file ] 返回 true。

-g file

檢測檔案是否設定了 sgid 位,如果是,則返回 true。

[ -g $file ] 返回 false。

-k file

檢測檔案是否設定了粘著位(sticky bit),如果是,則返回 true。

[ -k $file ] 返回 false。

-p file

檢測檔案是否是有名管道,如果是,則返回 true。

[ -p $file ] 返回 false。

-u file

檢測檔案是否設定了 suid 位,如果是,則返回 true。

[ -u $file ] 返回 false。

-r file

檢測檔案是否可讀,如果是,則返回 true。

[ -r $file ] 返回 true。

-w file

檢測檔案是否可寫,如果是,則返回 true。

[ -w $file ] 返回 true。

-x file

檢測檔案是否可執行,如果是,則返回 true。

[ -x $file ] 返回 true。

-s file

檢測檔案是否為空(檔案大小是否大於0),不為空返回 true。

[ -s $file ] 返回 true。

-e file

檢測檔案(包括目錄)是否存在,如果是,則返回 true。

[ -e $file ] 返回 true。

使用$(())使用$使用let命令

使用expr外部程式

直接在shell中輸入

r =$(( 4 + 5 ))

echo $r

輸出 9

直接在shell中輸入

n=10

let n=n+1

echo $n

輸出 11

直接在shell中輸入

a=`expr 4 + 5`

echo $a

輸出 9

#!/bin/bash

a=10

b=20

if [$a != $b ]

then

echo "$a != $b : a 不等於 b"

else

echo "$a != $b : a 不等於 b"

fi

輸出

10 != 20 : a 不等於 b
#!/bin/bash

a="abc"

b="efg"

if [ $a = $b ]

then

echo "$a != $b : a 不等於 b"

else

echo "$a != $b : a 不等於 b"

fi

輸出

abc != efg : a 不等於 b
#!/bin/bash

a="abc"

b="efg"

if [ $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 [ $a ]

then

echo "$a : 字串不為空"

else

echo "$a : 字串為空"

fi

輸出

abc != efg : a 不等於 b

-z abc : 字串長度部位0

abc : 字串不為空

shell運算子操作 算術運算子

a 10 b 20 echo a b expr echo a b expr echo a b expr echo a b expr echo a b expr if a b then echo a等於b else echo a不等於b fiif a b then echo a不等於b else ec...

shell 如何使用算術運算子

下表列出了常用的算術運算子,假定變數 one 為 1,變數 two 為 2 運算子說明舉例 加法 expr one two 結果為 3。減法 expr one two 結果為 1。乘法 expr one two 結果為 2。除法 expr two one 結果為 2。取餘 expr two one ...

Linux之Shell運算子使用

表示式 或 表示式 或者expr m n expression 表示式 注意expr運算子間要有空格,如果希望將expr的結果賦給某個變數,使用反引號expr m n 4 expr 乘,除,取餘 案例 1 計算 2 3 x 4的值 bin bash 案例 1 計算 2 3 4 的值 使用第一種方式 ...