欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

shell腳本下的雙[[]]和單[]的聯(lián)系和區(qū)別-創(chuàng)新互聯(lián)

1.單中括號(hào)[ ]

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),岑溪企業(yè)網(wǎng)站建設(shè),岑溪品牌網(wǎng)站建設(shè),網(wǎng)站定制,岑溪網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,岑溪網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

  ①bash 的內(nèi)部命令,[和test是等同的。如果我們不用絕對(duì)路徑指明,通常我們用的都是bash自帶的命令。if/test結(jié)構(gòu)中的左中括號(hào)是調(diào)用test的命令標(biāo)識(shí),右中括號(hào)是關(guān)閉條件判斷的。這個(gè)命令把它的參數(shù)作為比較表達(dá)式或者作為文件測(cè)試,并且根據(jù)比較的結(jié)果來(lái)返回一個(gè)退出狀態(tài)碼。if/test結(jié)構(gòu)中并不是必須右中括號(hào),但是新版的Bash中要求必須這樣。

  ②test和[]中可用的比較運(yùn)算符只有==和!=,兩者都是用于字符串比較的,不可用于整數(shù)比較,整數(shù)比較只能使用-eq,-gt這種形式。無(wú)論是字符串比較還是整數(shù)比較都不支持大于號(hào)小于號(hào)。如果實(shí)在想用,對(duì)于字符串比較可以使用轉(zhuǎn)義形式,如果比較"ab"和"bc":[ ab \< bc ],結(jié)果為真,也就是返回狀態(tài)為0。[ ]中的邏輯與和邏輯或使用-a 和-o 表示。

  ③字符范圍。用作正則表達(dá)式的一部分,描述一個(gè)匹配的字符范圍。作為test用途的中括號(hào)內(nèi)不能使用正則。

  ④在一個(gè)array 結(jié)構(gòu)的上下文中,中括號(hào)用來(lái)引用數(shù)組中每個(gè)元素的編號(hào)。

左中括號(hào)使用例子

1 #!/bin/bash

3 read val

5 [ "x$val"=="xhello" ]

7 echo $?

運(yùn)行結(jié)果:

shell腳本下的雙 [ [ ] ]和單[  ]的聯(lián)系和區(qū)別

$? 拿到退出狀態(tài)碼。

注意:在使用中括號(hào)的時(shí)候一定要有空格,因?yàn)樗且粭l命令,在比較的時(shí)候加上雙引號(hào),還要再給兩邊同時(shí)加上一個(gè)字符,以避免空串的比較出現(xiàn)問題。

2、雙中括號(hào)` `

  ①[[是 bash 程序語(yǔ)言的關(guān)鍵字。并不是一個(gè)命令,` ` 結(jié)構(gòu)比[ ]結(jié)構(gòu)更加通用。在[[和]]之間所有的字符都不會(huì)發(fā)生文件名擴(kuò)展或者單詞分割,但是會(huì)發(fā)生參數(shù)擴(kuò)展和命令替換。

  ②支持字符串的模式匹配,使用=~操作符時(shí)甚至支持shell的正則表達(dá)式。字符串比較時(shí)可以把右邊的作為一個(gè)模式,而不僅僅是一個(gè)字符串,比如[[ hello == hell? ]],結(jié)果為真。` ` 中匹配字符串或通配符,不需要引號(hào)。

  ③使用` `.``.``.` `條件判斷結(jié)構(gòu),而不是[ ... ],能夠防止腳本中的許多邏輯錯(cuò)誤。比如,&&、||、<和> 操作符能夠正常存在于` `條件判斷結(jié)構(gòu)中,但是如果出現(xiàn)在[ ]結(jié)構(gòu)中的話,會(huì)報(bào)錯(cuò)。比如可以直接使用if [[ $a != 1 && $a != 2 ]], 如果不適用雙括號(hào), 則為if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]。

  ④bash把雙中括號(hào)中的表達(dá)式看作一個(gè)單獨(dú)的元素,并返回一個(gè)退出狀態(tài)碼。

兩者區(qū)別:

[[]]有比[]高的容錯(cuò)性,如果a為空,那么[ $a -eq 0 ]會(huì)報(bào)錯(cuò),但是[[ $a -eq 0 ]]不會(huì),所以一般都會(huì)使用[[]]或者是[ "$a" -eq 0 ],[[]]支持的功能也比[]多,比如[[ aaa =~a{3} ]],
[] 還有一種用途,如果你的當(dāng)前目錄下有a1-a9九個(gè)文件,你可以用a[1-9]來(lái)替代這九個(gè)文件。有點(diǎn)需要注意,你不能用a[1-20]來(lái)代替a1- a20,必須要a[1-9] a1[0-9] a20。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。

標(biāo)題名稱:shell腳本下的雙[[]]和單[]的聯(lián)系和區(qū)別-創(chuàng)新互聯(lián)
標(biāo)題URL:http://chinadenli.net/article46/ceghhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)品牌網(wǎng)站建設(shè)ChatGPT搜索引擎優(yōu)化靜態(tài)網(wǎng)站面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司