无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網 會員登陸 & 注冊

TLCL學習筆記|第35章|字符串和數字|part1(參數展開)

2022-05-06 02:18 作者:LogByMax  | 我要投稿

(認知有限,如有不妥,還望告知,歡迎討論)


參數展開時注意使用{}

eg.

管理空變量的展開

${parameter:-word}

若 parameter 沒有設置(例如,不存在)或者為空,展開結果是 word 的值。若 parameter 不為空,則展開結果是 parameter 的值。

${parameter:=word}

若 parameter 沒有設置或為空,展開結果是 word 的值。另外,word 的值會賦值給 parameter。 若 parameter 不為空,展開結果是 parameter 的值。

${parameter:?word}

若 parameter 沒有設置或為空,這種展開導致腳本帶有錯誤退出,并且 word 的內容會發(fā)送到標準錯誤。若 parameter 不為空, 展開結果是 parameter 的值。

${parameter:+word}

若 parameter 沒有設置或為空,展開結果為空。若 parameter 不為空, 展開結果是 word 的值會替換掉 parameter 的值;然而,parameter 的值不會改變。

字符串展開

${#parameter}

展開成由 parameter 所包含的字符串的長度。



${parameter:offset}?和?${parameter:offset:length}

從 parameter 所包含的字符串中提取一部分字符。提取的字符始于 第 offset 個字符(從字符串開頭算起)直到字符串的末尾,除非指定提取的長度。



${parameter#pattern} 和?${parameter##pattern}

從 paramter 所包含的字符串中清除開頭一部分文本,#清除最短匹配結果,##清除最長匹配結果。(我現在也不知道這有什么用。。。)



${parameter%pattern} 和?${parameter%%pattern}

類似于上一條,只不過這里反過來,從末尾開始清除

${parameter/pattern/string} 和?${parameter//pattern/string} 和${parameter/#pattern/string}?和?${parameter/%pattern/string}

對 parameter 的內容執(zhí)行查找和替換操作。

上面的操作依次對應:

只將第一個出現的pattern替換成string;

將所有出現的pattern都替換成string;

將出現在開頭的pattern替換成string;

將出現在結尾的pattern替換成string(當/string 省略掉時,可能會導致刪除匹配的文本。)

bash支持字符串的大小寫轉換

第一種方法:使用declare

能強制一個變量總是包含所需的格式,無論如何賦值給它。

(這個例子好像macOS測不了,沒有-u 和-l的參數[1],但是bash文檔里有[2],不知道為什么,后面再看看)

第二種方法:使用對應的參數展開

(不知道為什么的macOS也不行系列。。。)

${parameter,,} ?----?把 parameter 的值全部展開成小寫字母。

${parameter,}??----??僅僅把 parameter 的第一個字符展開成小寫字母。

${parameter^^}??----??把 parameter 的值全部轉換成大寫字母。

${parameter^}??----?僅僅把 parameter 的第一個字符轉換成大寫字母(首字母大寫)。


進制表示

=END=

=reference=

[1]https://ss64.com/osx/declare.html

[2]https://www.gnu.org/software/bash/manual/bash.html#Bash-Builtins

TLCL學習筆記|第35章|字符串和數字|part1(參數展開)的評論 (共 條)

分享到微博請遵守國家法律
合作市| 普格县| 连南| 景泰县| 黔西| 汾西县| 乌拉特前旗| 饶平县| 静安区| 依兰县| 迁安市| 新泰市| 砀山县| 青河县| 灵寿县| 都兰县| 内江市| 遵化市| 固始县| 万安县| 阳高县| 福安市| 灵山县| 潮州市| 越西县| 平度市| 涟水县| 鄂托克前旗| 工布江达县| 灵丘县| 广饶县| 新巴尔虎左旗| 南丰县| 浦东新区| 三河市| 绥江县| 宜阳县| 依兰县| 石城县| 溧阳市| 惠水县|