這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)bash中的花括號(hào)擴(kuò)展是怎樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)建站專注于海口企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城網(wǎng)站制作。??诰W(wǎng)站建設(shè)公司,為海口等地區(qū)提供建站服務(wù)。全流程按需開發(fā)網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)bash的所有擴(kuò)展(expansion)如下:
Brace Expansion(花括號(hào)擴(kuò)展)
Tilde Expansion(波浪號(hào)擴(kuò)展)
Parameter and Variable Expansion (參數(shù)和變量擴(kuò)展)
Command Substitution(命令置換)
Arithmetic Expansion(算數(shù)擴(kuò)展)
Word Splitting(單詞分割)
Pathname Expansion(路徑擴(kuò)展)
上面列舉的順序正是bash在擴(kuò)展時(shí)的順序
花括號(hào)展開的定義(Brace Expansion)
花括號(hào)擴(kuò)展也稱大括號(hào)擴(kuò)展,是可以讓bash生成任意字符串的一種擴(kuò)展功能。它與“路徑擴(kuò)展”非常相似,唯一不同的是生成的字符串可以是不存在的路徑或者文件名
在bash中,花括號(hào)擴(kuò)展在諸多擴(kuò)展中優(yōu)先級(jí)最高,因此類似于echo {a,b}$PATH的語句在完成花括號(hào)擴(kuò)展之后的結(jié)果應(yīng)該為 a$PATH b$PATH,而對(duì)PATH環(huán)境變量的擴(kuò)展要到后續(xù)的“參數(shù)和變量擴(kuò)展”階段才開始
花括號(hào)擴(kuò)展的兩種格式
3.1 第一類格式為:
preamble+{string1,string2,string3,...,stringN}+postcript
左右的花括號(hào)是必須的,中間的字符串列表分別由逗號(hào)隔開,注意逗號(hào)前后不能有空格,如果string中有空格,則需要單引號(hào)或者雙引號(hào)擴(kuò)起來
bash在實(shí)際擴(kuò)展時(shí),會(huì)將preamble和花括號(hào)中的所有字符串(按照從左到右的順序)相連,最后分別加上postscript。
此外,花括號(hào)中間至少有一個(gè)逗號(hào),否則bash不會(huì)認(rèn)為花括號(hào)擴(kuò)展,例如:
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+{
其中
[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
其中的
[root@master01 ~]# echo {0..10..2}
0 2 4 6 8 10
從0開始,每遞增2個(gè)數(shù)字就取出相應(yīng)的數(shù)字。
如果不指定
另外,當(dāng)
[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
這樣格式長度一樣,會(huì)顯得很美觀
上述就是小編為大家分享的bash中的花括號(hào)擴(kuò)展是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。