shell指令碼 運算子

2021-10-11 15:49:03 字數 1847 閱讀 6537

#!/bin/bash

val=

`expr 2 + 2`

echo

"兩數之和為 : $val"

兩數之和為 : 4
注意:表示式和運算子之間要有空格,例如 2+2 是不對的,必須寫成 2 + 2,這與我們熟悉的大多數程式語言不一樣。

完整的表示式要被 空格包含,注意這個字元不是常用的單引號,在 esc 鍵下邊。

#!/bin/bash

`expr $a + $b`加`

expr $a - $b`減`

expr $a \* $b`乘`

expr $b / $a`除`

expr $b % $a`

取餘a=

$b賦值[$a

==$b

] 判斷是否相等[$a

!=$b

]判斷是否不等

#!/bin/bash

[$a -eq $b

]檢測是否等於

[$a -ne $b

]檢測是否不等

[$a -gt $b

]檢測是否大於

[$a -lt $b

]檢測是否小於

[$a -ge $b

]檢測是否大於等於

[$a -le $b

]檢測是否小於等於

#!/bin/bash[!

false

]非運算

[$a -lt 20 -o $b -gt 100 ]或運算

[$a -lt 20 -a $b -gt 100 ]與運算

#!/bin/bash[[

$a -lt 100 &&

$b -gt 100 ]

]邏輯的 and[[

$a -lt 100 ||

$b -gt 100 ]

]邏輯的 or

#!/bin/bash

假定變數 a 為 "abc",變數 b 為 "efg"[$a

=$b]檢測兩個字串是否相等[$a

!=$b

] 檢測兩個字串是否不等

[ -z $a

]檢測字串長度是否為0

[ -n "$a"

]檢測字串長度是否不為0[$a

]檢測字串是否為空,不為空返回 true

#!/bin/bash

file=

"/var/www/runoob/test.sh"

[ -b $file

] 檢測檔案是否是塊裝置檔案

[ -c $file

]是否是字元裝置檔案

[ -d $file

]是否是目錄

[ -f $file

]是否是普通檔案

[ -g $file

]是否設定了 sgid 位

[ -k $file

]是否設定了粘著位(sticky bit)

[ -p $file

]是否是有名管道

[ -u $file

]是否設定了 suid 位

[ -r $file

]是否可讀

[ -w $file

] 是否可寫

[ -x $file

]是否可執行

[ -s $file

]是否為空(檔案大小是否大於0)

[ -e $file

]檔案(包括目錄)是否存在

shell 指令碼運算子

1 數值 格式 test num1 opr num2 num1 opr num2 opr 取值 相等 eq 不等 ne 大於 gt 小於 lt l是字母l的小寫 小於等於 le 大於等於 ge 2 字串 格式 str1 opr str2 opr str opr取值 相等 不等 空串 z 非空串 n ...

shell指令碼比較運算子總結

e filename 如果 filename存在,則為真 d filename 如果 filename為目錄,則為真 f filename 如果 filename為常規檔案,則為真 l filename 如果 filename為符號鏈結,則為真 r filename 如果 filename可讀,則為...

shell指令碼之關係運算子

shell指令碼關係運算子只支援數字,不支援字串除非字串的值是數字。常用的關係運算子如下列出 1 eq 檢測兩個數是否相等,如相等返回true a eq b return false2 gt 檢測左邊的數是否大於右邊的,如果是,返回true.3 lt 檢測左邊的數是否小於右邊的,如果是,則返回tru...