91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

bash中的花括號擴展是怎樣的

發布時間:2021-09-26 16:00:00 來源:億速云 閱讀:134 作者:柒染 欄目:系統運維

這期內容當中小編將會給大家帶來有關bash中的花括號擴展是怎樣的,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

  1. bash的所有擴展(expansion)如下:
    Brace Expansion(花括號擴展)
    Tilde Expansion(波浪號擴展)
    Parameter and Variable Expansion (參數和變量擴展)
    Command Substitution(命令置換)
    Arithmetic Expansion(算數擴展)
    Word Splitting(單詞分割)
    Pathname Expansion(路徑擴展)
    上面列舉的順序正是bash在擴展時的順序
    bash中的花括號擴展是怎樣的

  2. 花括號展開的定義(Brace Expansion)
    花括號擴展也稱大括號擴展,是可以讓bash生成任意字符串的一種擴展功能。它與“路徑擴展”非常相似,唯一不同的是生成的字符串可以是不存在的路徑或者文件名
    在bash中,花括號擴展在諸多擴展中優先級最高,因此類似于echo {a,b}$PATH的語句在完成花括號擴展之后的結果應該為 a$PATH b$PATH,而對PATH環境變量的擴展要到后續的“參數和變量擴展”階段才開始

  3. 花括號擴展的兩種格式
    3.1 第一類格式為:
    preamble+{string1,string2,string3,...,stringN}+postcript
    左右的花括號是必須的,中間的字符串列表分別由逗號隔開,注意逗號前后不能有空格,如果string中有空格,則需要單引號或者雙引號擴起來
    bash在實際擴展時,會將preamble和花括號中的所有字符串(按照從左到右的順序)相連,最后分別加上postscript。
    此外,花括號中間至少有一個逗號,否則bash不會認為花括號擴展,例如:
    echo {moneny},想要輸出money,需要改為echo{money,}  如下:
    [root@master01 ~]# echo {money}
    {money}
    [root@master01 ~]# echo {money,}
    money
    查看完整的例子(注意空格的處理)
    [root@master01 ~]# echo sp{el,il,al}l
    spell spill spall
    [root@master01 ~]# echo sp{el,il, al}l
    sp{el,il, al}l
    [root@master01 ~]# echo sp{el,il,' al'}l
    spell spill sp all
    [root@master01 ~]# echo sp{el,il," "al}l
    spell spill sp all
    [root@master01 ~]# echo sp{el,il,' 'al}l
    spell spill sp all
    [root@master01 ~]# echo sp{el,il," al"}l
    spell spill sp all
    3.2 第二類格式為:
    preamble+{<START>..<END>..[INCR]}+postscript
    其中<START>..<END>組合而成的表達式術語叫做序列表達式(sequence expansion),表示一個特定的范圍。當<START>和<END>是數字,代表的是數字范圍;當<START>和<END>是單個字母時,代表是字符范圍(默認LC_ALL字符排列)。<START>和<END>必須同為數字或者字母,否則bash不認為是花括號擴展,而是原樣輸出。
    [root@master01 ~]# echo {1..12}
    1 2 3 4 5 6 7 8 9 10 11 12
    [root@master01 ~]# echo {3..-2}
    3 2 1 0 -1 -2
    [root@master01 ~]# echo {a..g}
    a b c d e f g
    [root@master01 ~]# echo {h..a}
    h g f e d c b a
    其中的<INCR>是可選的,代表的是區間范圍的遞增數,它必須是數字。例如:
    [root@master01 ~]# echo {0..10..2}
    0 2 4 6 8 10
    從0開始,每遞增2個數字就取出相應的數字。
    如果不指定<INCR>,那么默認是1或者是-1,具體是1或者-1,要看前面區間范圍是遞增還是遞減的,比如上面例子的{a..g}中默認是1,{h..a}默認為-1
    另外,當<START>和<END>是數字時,我們可以通過數字前面加0來輸出結果長度保持一致,
    [root@master01 ~]# echo {1..10}
    1 2 3 4 5 6 7 8 9 10
    [root@master01 ~]# echo {01..10}
    01 02 03 04 05 06 07 08 09 10
    [root@master01 ~]# echo {001..10}
    001 002 003 004 005 006 007 008 009 010
    這樣格式長度一樣,會顯得很美觀

上述就是小編為大家分享的bash中的花括號擴展是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天峻县| 金坛市| 筠连县| 古浪县| 临清市| 禄丰县| 临武县| 岑巩县| 云南省| 忻城县| 磐安县| 汽车| 福海县| 霍州市| 望都县| 图片| 玉溪市| 安图县| 广河县| 泉州市| 枣阳市| 比如县| 宝应县| 黄大仙区| 弋阳县| 敦煌市| 阳城县| 来凤县| 乳源| 霸州市| 清苑县| 平定县| 固阳县| 沧源| 平罗县| 玉田县| 迁安市| 泽库县| 镇雄县| 仪陇县| 阳山县|