亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

shell系列-shell第十二講

1、整數(shù)比較符
上一節(jié)課我們給大家講解了[ expression ]以及[[ expression ]]和test命令這三者的使用方法,以及他們的使用區(qū)別,不知道大家是否還記得,忘記的同學(xué)可以趕緊翻看課本看看去。
那么今天我們給大家講講整數(shù)比較符。這在我們的實(shí)際工作中是相當(dāng)常用的,快來(lái)跟我一起學(xué)習(xí)吧。
1.1、-eq
-eq,即equal的意思,在之前的小節(jié)中我們都使用過(guò),它相當(dāng)于我們數(shù)學(xué)中的等于意思,比如:
bash [root@master1 ~]#[ 1 -eq 1 ] [root@master1 ~]#echo $? 0 [root@master1 ~]#[ 1 -eq 2 ] [root@master1 ~]#echo $? 1 [root@master1 ~]#[ 1 -eq 0 ] [root@master1 ~]#echo $? 1
1確實(shí)等于1,條件為真,此時(shí)$?返回值就為0,當(dāng)我們拿1與其他數(shù)值做比較的時(shí)候,我們知道肯定是不相等的,此時(shí)返回值都不為0,條件為假。
1.2、-ne
-ne,即not equal,也就是不等于的意思,比如:
bash [root@master1 ~]#[ 1 -ne 0 ] [root@master1 ~]#echo $? 0 [root@master1 ~]#[ 1 -ne 2 ] [root@master1 ~]#echo $? 0
1與0比確實(shí)不相等,1與2比也確實(shí)不相等,此時(shí)條件為真,返回值都為0,而你要是在-ne中拿1和1做等于比較,此時(shí)條件就為假了,比如:
bash [root@master1 ~]#[ 1 -ne 1 ] [root@master1 ~]#echo $? 1
我想上過(guò)學(xué)的同學(xué)都能想清楚這點(diǎn),1等于1沒(méi)毛病,現(xiàn)在說(shuō)1不等于1,那肯定是錯(cuò)的嘛。
1.3、`-gt
-gt,即greater than,也就是大于的意思,比如:
bash [root@master1 ~]#[ 5 -gt 1 ] [root@master1 ~]#echo $? 0 [root@master1 ~]#[ 5 -gt 4 ] [root@master1 ~]#echo $? 0
5確實(shí)比1和4都大,因此他的條件判斷返回值都為0,條件為真。
不過(guò)需要注意,“大于“和”大于等于“不是一回事,比如拿5跟5作比較,條件肯定為假,比如
bash [root@master1 ~]#[ 5 -gt 5 ] [root@master1 ~]#echo $? 1
5是等于5的,這里用-gt是不行的。
1.4、-lt
-lt,即less than,也就是小于的意思,比如:
bash [root@master1 ~]#[ 1 -lt 5 ] [root@master1 ~]#echo $? 0
1確實(shí)小于5,因此條件為真,返回值為0。
1.5、-ge
-ge,即greater or equal,也就是大于等于的意思,比如
bash [root@master1 ~]#[ 5 -ge 4 ] [root@master1 ~]#echo $? 0 [root@master1 ~]#[ 5 -ge 5 ] [root@master1 ~]#echo $? 0
大于等于,這是兩個(gè)比較,要么是大于要么是等于,條件都為真,我們上面的5大于等于4,而5也大于等于5。因此條件都為真,返回值為0。
1.6、-le
-le,即 less or equal的意思,也就是小于等于之意,比如
bash [root@master1 ~]#[ 4 -le 5 ] [root@master1 ~]#echo $? 0 [root@master1 ~]#[ 5 -le 5 ] [root@master1 ~]#echo $? 0
4小于等于5,5也小于等于5,條件都為真,返回值也都為0。
2、()和(())的解說(shuō)
2.1、()
2.1.1、定義數(shù)組
在shell里面,用括號(hào)()來(lái)表示數(shù)組,數(shù)組元素之間用空格來(lái)分割,由此,我們是這樣定義數(shù)組的:
bash [root@localhost ~]# ARRAY=(arg1 arg2 arg3 arg4 arg5)
比如我們定義一組數(shù)值類型的數(shù)組,比如:
bash [root@localhost ~]# nums=(11 22 33 44 55)
shell中的數(shù)組類型不像高級(jí)編程語(yǔ)言C、java等那么嚴(yán)格,shell并不要求所有數(shù)組元素的類型必須相同,所以你也可以這么定義:
bash [root@localhost ~]# nums=(11 22 "https://www.baidu.com")
可以看出來(lái)前面是數(shù)值,后面第三個(gè)元素是一個(gè)百度網(wǎng)址。
2.1.2、獲取數(shù)組元素
獲取數(shù)組元素的值,語(yǔ)法是
bash [root@localhost ~]# ${數(shù)組名[下標(biāo)]}
看,我們這里又使用了$這個(gè)符號(hào),這個(gè)符號(hào)還是很強(qiáng)大的呢。
需要注意:數(shù)組的下標(biāo)Index默認(rèn)都是從0號(hào)開(kāi)始的,也就是說(shuō)你要獲取第一個(gè)元素,此時(shí)下標(biāo)要寫(xiě)0,要獲取第三個(gè)元素,此時(shí)下標(biāo)寫(xiě)2,即下標(biāo)=獲取的元素次序-1
比如我們獲取上面nums數(shù)組的第1個(gè)元素,此時(shí)是
bash [root@localhost ~]# echo ${nums[0]} 11
要獲取第三個(gè)元素,此時(shí)為:
bash [root@localhost ~]# echo ${nums[2]} https://www.baidu.com
大家都明白了嗎?
2.2、(())
2.2.1、雙小括號(hào)(())
雙小括號(hào)一般用于數(shù)學(xué)運(yùn)算表達(dá)式,就像做數(shù)學(xué)中的加法和減法一樣。比如:
bash [root@localhost ~]# ((1+1)) [root@localhost ~]# ((15)) 此時(shí)并沒(méi)有打印算式的輸出結(jié)果,這是因?yàn)槲覀冞€需要使用$來(lái)獲取結(jié)果,$真的是非常強(qiáng)大。獲取值是這樣的。 bash [root@localhost ~]# echo $((15))
我們來(lái)嘗試一下,比如打印55的值 bash [root@localhost ~]# echo $((55)) 25
或者計(jì)算100200的值 bash [root@localhost ~]# echo $((100200)) 20000
當(dāng)然還可以做復(fù)雜的計(jì)算,比如:
bash [root@localhost ~]# echo $((100*20-5000/10)) 1500

聲明:文章來(lái)源于網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系刪除!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!