婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解shell腳本[] [[]] -n -z 的含義解析

詳解shell腳本[] [[]] -n -z 的含義解析

熱門標簽:如何申請400的電話呀 電話機器人對家居行業(yè)幫助大嗎 蘭州電銷機器人加盟 沈陽ai電銷智能機器人 AI智能電銷機器人壞處 地圖標注審核周期 電商外呼系統(tǒng)排名 合肥電銷外呼系統(tǒng)供應商 黑暗之魂3地圖標注

在寫腳本的時候,總是搞不懂[] [[]]的區(qū)別,這次寫一個總結,把它掌握牢固

[]和test

兩者是一樣的,在命令行里test expr和[ expr ]的效果相同。

test的三個基本作用是判斷文件、判斷字符串、判斷整數。支持使用 ”與或非“ 將表達式連接起來。

test中可用的比較運算符只有==和!=,兩者都是用于字符串比較的,不可用于整數比較,整數比較只能使用-eq, -gt這種形式。

無論是字符串比較還是整數比較都千萬不要使用大于號小于號。當然,如果你實在想用也是可以的,對于字符串比較可以使用尖括號的轉義形式, 如果比較"ab"和"bc":[ ab \ bc ],結果為真,也就是返回狀態(tài)為0.

[[ ]]
這是內置在shell中的一個命令,它就比剛才說的test強大的多了。支持字符串的模式匹配(使用=~操作符時甚至支持shell的正則表達 式)。邏輯組合可以不使用test的-a,-o而使用 ||。
字符串比較時可以把右邊的作為一個模式(這是右邊的字符串不加雙引號的情況下。如果右邊的字符串加了雙引號,則認為是一個文本字符串。),而不僅僅是一個字符串,比如[[ hello == hell? ]],結果為真。

  注意:使用[]和[[]]的時候不要吝嗇空格,每一項兩邊都要有空格,[[ 1 == 2 ]]的結果為“假”,但[[ 1==2 ]]的結果為“真”!

1. 首先,盡管很相似,但是從概念上講,二者是不同層次的東西。
"[[",是關鍵字,許多shell(如ash bsh)并不支持這種方式。ksh, bash(據說從2.02起引入對[[的支持)等支持。
"["是一條命令, 與test等價,大多數shell都支持。在現代的大多數sh實現中,"["與"test"是內部(builtin)命令,換句話說執(zhí)行"test"/"["時不會調用/some/path/to/test這樣的外部命令(如果有這樣的命令的話)。

2.[[]]結構比Bash版本的[]更通用。在[[和]]之間的所有的字符都不會被文件擴展或是標記分割,但是會有參數引用和命令替換。

用[[ ... ]]測試結構比用[ ... ]更能防止腳本里的許多邏輯錯誤。比如說,,||,和>操作符能在一個[[]]測試里通過,但在[]結構會發(fā)生錯誤。

3.(( ))結構擴展并計算一個算術表達式的值。如果表達式值為0,會返回1或假作為退出狀態(tài)碼。一個非零值的表達式返回一個0或真作為退出狀態(tài)碼。這個結構和先前test命令及[]結構的討論剛好相反。

4.[ ... ]為shell命令,所以在其中的表達式應是它的命令行參數,所以串比較操作符">" 與""必須轉義,否則就變成IO改向操作符了(請參看上面2中的例子)。在[[中""與">"不需轉義;
由于"[["是關鍵字,不會做命令行擴展,因而相對的語法就稍嚴格些。例如
在[ ... ]中可以用引號括起操作符,因為在做命令行擴展時會去掉這些引號,而在[[ ... ]]則不允許這樣做。

5.[[ ... ]]進行算術擴展,而[ ... ]不做

6.[[ ... ... ... ]] 和 [ ... -a ... -a ...] 不一樣,[[ ]] 是邏輯短路操作,而 [ ] 不會進行邏輯短路

應用場景分析:

1、在中括號中,判斷變量的值, 加不加雙引號的問題?

-z 判斷 變量的值,是否為空; zero = 0

  - 變量的值,為空,返回0,為true
  - 變量的值,非空,返回1,為false

-n 判斷變量的值,是否為空   name = 名字
  - 變量的值,為空,返回1,為false
  - 變量的值,非空,返回0,為true
pid="123"
    [ -z "$pid" ]  單對中括號變量必須要加雙引號
   [[ -z $pid ]]   雙對括號,變量不用加雙引號

   [ -n "$pid" ]  單對中括號,變量必須要加雙引號
   [[ -z  $pid ]]  雙對中括號,變量不用加雙引號

2、多個條件判斷,[] 和 [[]] 的區(qū)別?

2.1:[[ ]] 雙對中括號,是不能使用 -a 或者 -o的參數進行比較的;

并且 || 或 -a 并且 -o 或者

[[ ]] 條件判斷 并且 || 或

[[ 5 -lt 3 || 3 -gt 6 ]] 一個條件,滿足,就成立 或者的關系
[[ 5 -lt 3 || 3 -gt 6 ]] 一個條件滿足,就成立 或者的關系

[[ 5 -lt 3 ]] || [[3 -gt 6 ]]
[[ 5 -lt 3 ]] || [[3 -gt 6 ]] 寫在外面也可以

必須兩個條件同時滿足,和上述一樣,這里想說明的問題的是:

[[ 5 -lt 3]] -o [[ 3 -gt 6 ]] [[ 5 -lt 3 -o 3 -gt 6 ]]
[[ 5 -lt 3 -a 3 -gt 6 ]] [[ 5 -lt 3 -a 3 -gt 6 ]]
-a 和 -o就不成立了,是因為,[[]] 雙對中括號,不能使用 -o和 -a的參數

直接報錯:


2.2 [ ] 可以使用 -a -o的參數,但是必須在 [ ] 中括號內,判斷條件,例如:

[ 5 -lt 3 -o 3 -gt 2 ] 或者條件成立
[5 -lt 3 ] -o [ 3 -gt 2] 或者條件, 這個不成立,因為必須在中括號內判斷

如果想在中括號外判斷兩個條件,必須用 和 || 比較
[5 -lt 3 ] || [ 3 -gt 2]
[5 -gt 3 ] [ 3 -gt 2] 成立

相對的,|| 和 不能在中括號內使用,只能在中括號外使用

3、當判斷某個變量的值是否滿足正則表達式的時候,必須使用[[ ]] 雙對中括號


單對中括號,直接報錯:


到此這篇關于詳解shell腳本[] [[]] -n -z 的含義解析的文章就介紹到這了,更多相關shell [] [[]] -n -z 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • shell中各種括號的作用詳解()、(())、[]、[[]]、{}(推薦)
  • shell中的各種括號的使用方法

標簽:黔南 隴南 黔南 河池 河北 淮南 通遼 常州

巨人網絡通訊聲明:本文標題《詳解shell腳本[] [[]] -n -z 的含義解析》,本文關鍵詞  詳解,shell,腳本,的,含義,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解shell腳本[] [[]] -n -z 的含義解析》相關的同類信息!
  • 本頁收集關于詳解shell腳本[] [[]] -n -z 的含義解析的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人av在线播放网站| 99久久久免费精品国产一区二区| 亚洲成人一区二区在线观看| 欧美性大战久久久久久久蜜臀| 欧美精品精品一区| 亚洲欧洲国产专区| 国产精品免费久久| 午夜视黄欧洲亚洲| 亚洲最快最全在线视频| 免费成人在线播放| 九九**精品视频免费播放| 精品久久国产字幕高潮| 欧美岛国在线观看| 色综合久久精品| 精品久久久久香蕉网| 91社区在线播放| 久久久久一区二区三区四区| 美日韩黄色大片| 国产精品污网站| 亚洲永久免费av| 五月天丁香久久| 亚洲国产精品麻豆| 成人福利在线看| 国产99久久精品| 久久国产精品区| 欧美精品自拍偷拍| 欧美成人性福生活免费看| 中文字幕av资源一区| 一区二区三区精品久久久| 精品国产乱码久久久久久免费 | 国产偷v国产偷v亚洲高清| 蜜臀av国产精品久久久久| 日韩午夜三级在线| 日日骚欧美日韩| 国产日韩欧美在线一区| 亚洲人成伊人成综合网小说| 美女网站一区二区| 在线观看av一区二区| 国产成人亚洲综合a∨婷婷 | 亚洲自拍另类综合| 日本亚洲电影天堂| 精品综合免费视频观看| a在线播放不卡| 91精品午夜视频| 国产喂奶挤奶一区二区三区| 亚洲精品成人悠悠色影视| 亚洲高清免费一级二级三级| 极品美女销魂一区二区三区免费| 风流少妇一区二区| 欧美在线free| 久久久久88色偷偷免费| 亚洲精品午夜久久久| 老司机精品视频在线| 色综合久久久久综合99| 日韩欧美视频在线| 亚洲欧美成aⅴ人在线观看| 偷拍亚洲欧洲综合| 亚洲国产成人私人影院tom| 日本午夜精品视频在线观看| 三级影片在线观看欧美日韩一区二区| 亚洲尤物在线视频观看| 久久精品av麻豆的观看方式| 成人免费视频网站在线观看| 日本高清无吗v一区| 国产日韩欧美麻豆| 精品一区二区三区影院在线午夜| 日本韩国一区二区三区| 91精选在线观看| 亚洲高清中文字幕| 在线免费观看成人短视频| 国产精品久久久久久久裸模| 国产99久久久国产精品免费看| 日韩在线观看一区二区| 日韩欧美一级特黄在线播放| 亚洲精品亚洲人成人网在线播放| 国产精品自在在线| 日韩成人精品视频| 色哟哟一区二区在线观看 | 粉嫩aⅴ一区二区三区四区五区 | 中文字幕免费不卡在线| 日本中文在线一区| 欧美美女一区二区| 亚洲九九爱视频| 成人免费毛片嘿嘿连载视频| 欧美成人性福生活免费看| 婷婷一区二区三区| 欧美中文字幕亚洲一区二区va在线 | 久久亚区不卡日本| 美女一区二区三区在线观看| 欧美一区二区在线不卡| 亚洲成人7777| 欧美日韩午夜影院| 亚洲午夜三级在线| 欧美日韩一区二区在线观看| 亚洲老妇xxxxxx| 欧美在线免费观看亚洲| 一区二区三区四区不卡在线| 色婷婷国产精品久久包臀| 自拍偷拍亚洲综合| 91麻豆精品在线观看| 亚洲免费在线看| 欧美伊人久久久久久午夜久久久久| 亚洲欧美色图小说| 91网站黄www| 日韩欧美一区在线| 欧美一区二区三区在线观看| 激情小说欧美图片| 欧洲精品一区二区| 中文字幕一区二区三区乱码在线| 日韩电影在线观看网站| 欧美sm极限捆绑bd| 国产一级精品在线| 国产午夜精品一区二区三区视频| 成人av手机在线观看| 亚洲手机成人高清视频| 91最新地址在线播放| 亚洲黄色在线视频| 亚洲一区二区三区自拍| 欧美刺激午夜性久久久久久久| 蜜臀av性久久久久蜜臀aⅴ| 精品国产精品一区二区夜夜嗨| 狠狠色狠狠色合久久伊人| 国产精品麻豆网站| www.亚洲激情.com| 成人av网站免费| 伊人夜夜躁av伊人久久| 欧美va亚洲va国产综合| 69成人精品免费视频| 制服丝袜中文字幕一区| 欧美剧在线免费观看网站| 欧美久久免费观看| 精品国产乱码久久久久久牛牛| 久久久99久久| 国产精品视频免费| 伊人夜夜躁av伊人久久| 亚洲一区二区三区四区在线免费观看 | 136国产福利精品导航| 欧美性受xxxx黑人xyx| 亚洲高清免费视频| 国产亚洲va综合人人澡精品 | 国产成人一区在线| 亚洲成av人片| 国产精品毛片a∨一区二区三区| 欧美日韩精品专区| va亚洲va日韩不卡在线观看| 日韩电影在线观看电影| 国产精品久久看| 久久夜色精品国产噜噜av | 日韩**一区毛片| 欧美大片一区二区| 精品无人码麻豆乱码1区2区| 亚洲欧美国产77777| 欧美tickle裸体挠脚心vk| 一本大道综合伊人精品热热| 久久精品国产色蜜蜜麻豆| 亚洲午夜久久久| 国产精品国产自产拍高清av| 欧美肥胖老妇做爰| 91啪在线观看| 国产成人欧美日韩在线电影 | 久久99精品久久久久| 亚洲一区在线观看视频| 国产精品精品国产色婷婷| 欧美成人精品福利| 国产精品久久久久久一区二区三区| 亚洲综合激情另类小说区| 国产欧美日韩卡一| 精品福利在线导航| 欧美日韩国产综合一区二区| 色狠狠色噜噜噜综合网| 99久精品国产| 成人午夜视频网站| 成人中文字幕合集| 国产又黄又大久久| 韩国精品在线观看| 久久精品免费观看| 精品一区二区三区免费视频| 麻豆国产一区二区| 国产一区高清在线| 国产精品白丝av| 国产成人精品免费在线| 国产成人精品影视| 成人av手机在线观看| 一本一道综合狠狠老| 在线观看不卡视频| 欧美日韩亚洲国产综合| 制服丝袜一区二区三区| 欧美大胆人体bbbb| 国产精品丝袜91| 亚洲精品乱码久久久久久| 一区二区三区在线高清| 亚洲成a人片综合在线| 久久不见久久见免费视频7| 国产伦精品一区二区三区免费| 国产成人午夜99999| 成人激情免费网站| 色欧美日韩亚洲| 欧美一级免费观看| 亚洲国产精品久久人人爱蜜臀| 欧美日韩一区二区三区不卡|