《Shell在計(jì)算包含轉(zhuǎn)義字符(\)的字符長(zhǎng)度時(shí)的驗(yàn)證說(shuō)明》要點(diǎn):
本文介紹了Shell在計(jì)算包含轉(zhuǎn)義字符(\)的字符長(zhǎng)度時(shí)的驗(yàn)證說(shuō)明,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
前面的一篇文章《[Linux]如何在Shell腳本中計(jì)算字符串長(zhǎng)度?》介紹了如何使用Shell計(jì)算字符長(zhǎng)度,但小魔發(fā)現(xiàn)當(dāng)字符串中包含轉(zhuǎn)義字符\時(shí),文章所提供的幾種方法會(huì)將轉(zhuǎn)義字符統(tǒng)計(jì)在內(nèi),通過(guò)我在環(huán)境中的測(cè)試,先直接給出驗(yàn)證結(jié)論:
1. 若轉(zhuǎn)義字符\后跟隨的是特殊字符,例如:$,那么在計(jì)算字符串長(zhǎng)度時(shí),會(huì)自動(dòng)將轉(zhuǎn)義符\排除掉;
2. 若轉(zhuǎn)義字符\后跟隨的不是特殊字符,而是字母、數(shù)字之類的,那么在計(jì)算字符串長(zhǎng)度時(shí),則會(huì)將轉(zhuǎn)義符\計(jì)算在內(nèi).
下面我們從這兩個(gè)結(jié)論的場(chǎng)景去驗(yàn)證,詳細(xì)驗(yàn)證過(guò)程如下:
驗(yàn)證場(chǎng)景1:當(dāng)轉(zhuǎn)義符\后跟隨的不是特殊字符,是字母的場(chǎng)景,這時(shí)計(jì)算出來(lái)的字符串str=”abc\n”的長(zhǎng)度是5
[root@tektea ~]# str=”abc\n”
[root@tektea ~]# echo $str | wc -L
5
[root@tektea ~]# echo $str | awk -F “” ‘{print NF}’
5
[root@tektea ~]# echo $str | awk ‘{print length($0)}’
5
[root@tektea ~]# echo ${#str}
5
驗(yàn)證場(chǎng)景2:當(dāng)轉(zhuǎn)義符\后跟隨的是特殊字符,這時(shí)計(jì)算出來(lái)的字符串str=”abc\$”的長(zhǎng)度是4
[root@tektea ~]# str=”abc\$”
[root@tektea ~]# echo $str | wc -L
4
[root@tektea ~]# echo $str | awk -F “” ‘{print NF}’
4
[root@tektea ~]# echo $str | awk ‘{print length($0)}’
4
[root@tektea ~]# echo ${#str}
4
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/4666.html