变量长度 / 删除字符串

  1. 字符串的长度(     $var中字符的个数)。对任意数组 array,  ${#array} 返回数组中第一个元素的长度。数组

如下状况例外:
    ${#*} 和 ${#@} 返回位置参数的个数。
任意数组array, ${#array[*]} 和${#array[@]}返回数组中元素的个数。bash

2.   ${var%Pattern}, ${var%%Pattern}    
    ${var%Pattern} 删除$var 后缀部分匹配到的最短长度的 $Pattern   。
    ${var%%Pattern} 删除$var 后缀部分匹配到的最长长度的 $Pattern  .字符串

#!/bin/bash
stringZ=abcABC123ABCabc
pattern=*C
pattern1=*b
echo "${stringZ#$pattern}"   #123ABCabc
echo ${stringZ##$pattern}   #abc
echo "${stringZ#$pattern1}" #bcABC123ABCabc
echo ${stringZ##$pattern1}  #cstring

3.       ${var%Pattern},    ${var%%Pattern}    
     ${var%Pattern}删除$var后缀部分匹配到的最短长度的$Pattern。
    ${var%%Pattern}删除$var后缀部分匹配到的最长长度的$Pattern。it

#!/bin/bash
stringZ=abcABC123ABCabc
pattern=C*
pattern1=b*
echo "${stringZ%$pattern}"  #abcABC123AB
echo ${stringZ%%$pattern}   #abcAB
echo "${stringZ%$pattern1}" #abcABC123ABCa
echo ${stringZ%%$pattern1}  #a
要求是pattern,也就是RE,必须指定一个从左到右,或从右到左的删除规则,最好不要是字符串。如果只删除一个字符,也可使用一个字符的规则。字符

4.    ${var/Pattern/Replacement}替换var中第一个匹配到的Pattern为Replacement.参数

       ${var//Pattern/Replacement}全局替换.替换var 中全部匹配到的Pattern为Replacement.printf

在Replacement为空时,表示删除。ab

5.  set ,能够强制解析参数组。

    #!/bin/bash -efor planet in "Mercury 36" "Venus 67" "Earth 93" "Mars 142" "Jupiter 483"do set  -- $planet      printf "$1        $2\n"doneexit    0

相关文章
相关标签/搜索