《Shell在計算包含轉義字符(\)的字符長度時的驗證說明》要點:
本文介紹了Shell在計算包含轉義字符(\)的字符長度時的驗證說明,希望對您有用。如果有疑問,可以聯系我們。
前面的一篇文章《[Linux]如何在Shell腳本中計算字符串長度?》介紹了如何使用Shell計算字符長度,但小魔發現當字符串中包含轉義字符\時,文章所提供的幾種方法會將轉義字符統計在內,通過我在環境中的測試,先直接給出驗證結論:
1. 若轉義字符\后跟隨的是特殊字符,例如:$,那么在計算字符串長度時,會自動將轉義符\排除掉;
2. 若轉義字符\后跟隨的不是特殊字符,而是字母、數字之類的,那么在計算字符串長度時,則會將轉義符\計算在內.
下面我們從這兩個結論的場景去驗證,詳細驗證過程如下:
驗證場景1:當轉義符\后跟隨的不是特殊字符,是字母的場景,這時計算出來的字符串str=”abc\n”的長度是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
驗證場景2:當轉義符\后跟隨的是特殊字符,這時計算出來的字符串str=”abc\$”的長度是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