最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell中[]與[[]]的區(qū)別小結(jié)

 更新時間:2023年09月18日 09:45:00   作者:運(yùn)維@小兵  
多數(shù)情況下[]和[[]]是可以通用的,但是也是有區(qū)別的,本文就來介紹一下shell中[]與[[]]的區(qū)別,具有一定的參考價值,感興趣的可以了解一下

區(qū)別一

[ ]是符合POSIX標(biāo)準(zhǔn)的測試語句,兼容性更強(qiáng),幾乎可以運(yùn)行在所有的Shell解釋器中

[[ ]]僅可運(yùn)行在特定的幾個Shell解釋器中(如Bash等)

區(qū)別二:<和>在[[ ]]中用作排序,而[ ]不支持

進(jìn)行比較前先設(shè)置LANG=C,在排序時使用ASCII碼順序

數(shù)字的ASCII碼應(yīng)該小于大寫字母,使用[[ ]]的結(jié)果是正確的

區(qū)別三:[ ]中使用-a和-o表示邏輯與和邏輯或,[[ ]]使用&&和||來表示

[[ ]]不支持-a

區(qū)別四:在[ ]中==是字符匹配,在[[ ]]中是模式匹配

[[ ]]中表示變量name是否以字母d開頭

區(qū)別五:[ ]不支持正則匹配,[[ ]]支持用=~進(jìn)行正則匹配

[[ ]]判斷變量name的值是否包含字母c

區(qū)別六:[ ]僅在部分Shell中支持用()進(jìn)行分組,[[ ]]均支持

[ 1 == 1 -a (2 == 2 -o 3 == 4) ] && echo Y || echo N
[[ 1 == 1 && (2 == 2 || 3 == 4) ]] && echo Y || echo N		#[[]]不支持-a和-o

區(qū)別七:[ ]中如果變量沒有定義,那么需用雙引號引起來,[[ ]]中不需要

參考書籍:《Linux Shell核心編程指南》

遇到的坑

1、[[ ! -f hosts ]]條件判斷導(dǎo)致腳本退出

[[ ! -f hosts ]] && echo "ERROR:hosts Not Found" && exit 1
echo $?
1

原因

如果hosts文件存在,那么[[ ! -f hosts ]]的狀態(tài)碼則為1,如果腳本開啟了set -e,那邊會導(dǎo)致腳本退出

解決

如果環(huán)境監(jiān)測正常,在后面用echo輸出一句話即可

[[ ! -f hosts ]] && echo "ERROR:hosts Not Found" && exit 1
echo "INFO:Check_Env Is Ok"

到此這篇關(guān)于shell中[]與[[]]的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)shell []與[[]]內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Shell中關(guān)于exit 0的那些坑

    Shell中關(guān)于exit 0的那些坑

    在 shell 編程中,需慎用 exit 0,本文主要介紹了Shell中關(guān)于exit 0的那些坑,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Shell 命令執(zhí)行順序分析[圖]

    Shell 命令執(zhí)行順序分析[圖]

    Shell 從標(biāo)準(zhǔn)輸入或腳本中讀取的每一行稱為管道(pipeline);它包含了一個或多個命令(command),這些命令被一個或多個管道字符(|)隔開
    2013-01-01
  • Linux Shell腳本編程的注意事項(xiàng)

    Linux Shell腳本編程的注意事項(xiàng)

    這篇文章主要介紹了Linux下Shell腳本編程的一些注意事項(xiàng),如編程風(fēng)格、命名風(fēng)格等,需要的朋友可以參考下
    2014-03-03
  • shell腳本如何獲取第幾行 第幾列的命令 awk sed

    shell腳本如何獲取第幾行 第幾列的命令 awk sed

    這篇文章主要介紹了shell腳本如何獲取第幾行 第幾列的命令 awk sed,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • Linux內(nèi)核鏈表實(shí)現(xiàn)過程

    Linux內(nèi)核鏈表實(shí)現(xiàn)過程

    本文講解Linux內(nèi)核鏈表實(shí)現(xiàn)的過程,說了鏈表的定義及初始化宏定義、操作和刪除操作等內(nèi)容,詳細(xì)看下面
    2013-11-11
  • shell簡單處理mysql查詢結(jié)果的方法

    shell簡單處理mysql查詢結(jié)果的方法

    今天小編就為大家分享一篇shell簡單處理mysql查詢結(jié)果的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Shell腳本中[]和[[]]區(qū)別詳解

    Shell腳本中[]和[[]]區(qū)別詳解

    在 Shell 腳本中,[] 和 [[]] 是用于條件測試的不同語法結(jié)構(gòu),它們有一些區(qū)別,主要體現(xiàn)在對字符串處理和表達(dá)式的支持上,這篇文章主要介紹了Shell腳本中[]和[[]]區(qū)別,需要的朋友可以參考下
    2023-12-12
  • Linux中g(shù)rep命令詳解

    Linux中g(shù)rep命令詳解

    grep命令是Linux系統(tǒng)中最重要的命令之一,功能是從文本文件或管道數(shù)據(jù)流中篩選匹配的行和數(shù)據(jù),如果再配合正則表達(dá)式,功能十分強(qiáng)大,是Linux運(yùn)維人員必備的命令,這篇文章主要介紹了Linux中g(shù)rep詳解,需要的朋友可以參考下
    2023-02-02
  • 常用Shell命令集合和使用技巧(推薦)

    常用Shell命令集合和使用技巧(推薦)

    這篇文章主要介紹了最常用Shell命令集合和使用技巧,本文分場景通過實(shí)例講解給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Linux中使用expect腳本實(shí)現(xiàn)遠(yuǎn)程機(jī)器自動登錄

    Linux中使用expect腳本實(shí)現(xiàn)遠(yuǎn)程機(jī)器自動登錄

    本篇文章給大家介紹在Linux中使用expect腳本實(shí)現(xiàn)遠(yuǎn)程機(jī)器自動登錄,前提是要創(chuàng)建一個expec腳本ssh_expect,接下來定義一些命令別名等,下面跟著腳本之家小編一起學(xué)習(xí)學(xué)習(xí)吧
    2015-09-09

最新評論

射洪县| 科技| 开封市| 巴南区| 阳江市| 保亭| 旺苍县| 汉沽区| 武胜县| 安岳县| 曲阜市| 武强县| 宜兰县| 军事| 上林县| 永川市| 香河县| 郎溪县| 墨竹工卡县| 武穴市| 准格尔旗| 都匀市| 金寨县| 普格县| 南木林县| 潞城市| 冀州市| 武强县| 丁青县| 巨野县| 普兰县| 延边| 永平县| 丘北县| 临湘市| 喀喇沁旗| 遵化市| 江永县| 永康市| 通化县| 芒康县|