溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Shell中運算符有哪些

發(fā)布時間:2022-01-13 15:35:33 來源:億速云 閱讀:108 作者:小新 欄目:建站服務(wù)器

這篇文章給大家分享的是有關(guān)Shell中運算符有哪些的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

算數(shù)運算符

運算符說明舉例
+加法`expr $a + $b` 
-減法`expr $a - $b` 
*乘法`expr $a \* $b` 
/除法`expr $b / $a` 
%取余`expr $b % $a` 
=賦值a=$b 將把變量 b 的值賦給 a。
==相等。用于比較兩個數(shù)字,相同則返回 true。[ $a == $b ] 返回 false。
!=不相等。用于比較兩個數(shù)字,不相同則返回 true。[ $a != $b ] 返回 true

示例:

#!/bin/bash
#author:zrc
a=5
b=10
val=`expr ${a} + $`
echo "a + b : ${val}"
val=`expr ${a} - $`
echo "a - b : ${val}"
val=`expr ${a} \* $`
echo "a * b : ${val}"
val=`expr ${a} / $`
echo "a / b : ${val}"
#注意空格使用
if [ $a == $b ];then
	echo " a = b "
fi
if [ $a != $b ];then
	echo " a != b "
fi

關(guān)系運算符

關(guān)系運算符不支持字符串(字符串見后面),只支持?jǐn)?shù)字 例:a=5  b=10

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

示例:

#!/bin/bash
#author:zrc
a=5
b=10
if [ $a -eq $b ];then
	echo " $a -eq $b : a 等于 b "
    else
	echo " $a -eq $b : a 不等于 b "
fi
if [ $a -ne $b ];then
	echo " $a -ne $b : a 不等于 b "
    else
	echo " $a -ne $b : a 等于 b "
fi

布爾運算符

例:a=5  b=10

運算符說明舉例
!非運算,表達式為 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。

邏輯運算符

注意使用邏輯運算符需要多重使用[]符號 例:a=5  b=10

true and flase 返回 false

true and false 返回 true

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

字符串運算符

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

運算符說明舉例
=檢測兩個字符串是否相等,相等返回 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。

示例:

#!/bin/bash
#author:zrc
a="aaa"
b="bbb"
if [ $a = $b ];then
	echo " $a = $b : a 等于 b "
    else
	echo " $a = $b : a 不等于 b "
fi
if [ $a != $b ];then
	echo " $a != $b : a 不等于 b "
    else
	echo " $a != $b : a 等于 b "
fi
if [ -z $b ];then
	echo "-z $b : 字符長度為0 "
    else
	echo "-z $b : 字符長度為${#b} "
fi
if [ -n $b ];then
	echo "-z $b : 字符長度不為0 "
    else
	echo "-z $b : 字符長度為${#b} "
fi
if [ $b ];then
	echo "$b : 字符串不為空 "
    else
	echo "$b : 字符串為空 "
fi

文件運算符

操作符說明舉例
-b file檢測文件是否是塊設(shè)備文件,如果是,則返回 true。[ -b $file ] 返回 false。
-c file檢測文件是否是字符設(shè)備文件,如果是,則返回 true。[ -c $file ] 返回 false。
-d file檢測文件是否是目錄,如果是,則返回 true。[ -d $file ] 返回 false。
-f file檢測文件是否是普通文件(既不是目錄,也不是設(shè)備文件),如果是,則返回 true。[ -f $file ] 返回 true。
-g file檢測文件是否設(shè)置了 SGID 位,如果是,則返回 true。[ -g $file ] 返回 false。
-k file檢測文件是否設(shè)置了粘著位(Sticky Bit),如果是,則返回 true。[ -k $file ] 返回 false。
-p file檢測文件是否是有名管道,如果是,則返回 true。[ -p $file ] 返回 false。
-u file檢測文件是否設(shè)置了 SUID 位,如果是,則返回 true。[ -u $file ] 返回 false。
-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。

感謝各位的閱讀!關(guān)于“Shell中運算符有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI