Linux shell指令碼數字 字串的運算及比較

2021-10-08 08:14:53 字數 1710 閱讀 3736

運算

a=12

b=11

expr $a+$b

expr $a \*

$becho $[$a+

$b]echo $[a+b]

echo $(

(a+b)

)echo $[a+b]

,$[a*b]

需要注意的是如果使用expr輸出結果,此時在做運算時運算子的兩邊要有空格,如果我們輸入expr a+b,則輸出結果不會對a和b做運算, 結果為a+b。且用expr輸出結果時,乘法必須要用""轉義。如果用echo $這個結構,我們可以不用空格把它們隔開也能輸出想要的結果。

自增運算

let i++

;echo

$i

小數的運算和比較
echo

"12.3 +12"

| bc

echo

"12 >= 13"

| bc

給小數作比較時,返回1為真,0為假

字串比較

比較兩個字串是否相等

[ str1 == str2 ]

[ str1 != str2 ]

比較兩個字串大小

if[[

"$a"

< "$b"]]

if["$a" \< "$b"]if

[["$a" > "$b"]]

if["$a" \> "$b"

]

在結構中"<",">"需要被轉義.

邏輯運算:&& ||

if

[-z $]|

|[-z $

]; then

echo

"$值為空或者$的值為空"

fi

-z : 判斷是否為空,為空時為真

[

-z $a

]

! -z : 不為空為真

[

!-z $a

]

-n :不為空為真

[

-n $a

]

整數比較

-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"

]

剔除異常字元,保留文字,數字,字母

採用保留文字,漢字,字母方法剔除異常字元 def is chinese uchar 判斷乙個unicode是否是漢字 if uchar u u4e00 and uchar u u9fa5 return true else return false def is number uchar 判斷乙個un...

Linux Shell指令碼基礎

shell指令碼在處理自動迴圈或大的任務方面可節省大量時間,且功能強大。任何指令碼都可能有注釋,加注釋需要此行的第乙個字元為 直譯器對此行不予解釋。指令碼不是複雜的程式,它是按行解釋的。指令碼第一行總是以 bin sh開始,這段指令碼通知shell使用系統上的 bourne shell直譯器。指令碼...

linux shell指令碼犯錯

指令碼裡犯了錯 oracle it shell value 1 oracle it shell value 1 bash value command not found oracle it shell value 3 bash value command not found oracle it sh...