变量长度  /  删除字符串

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

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

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}  #c

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

#!/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.

在Replacement为空时,表示删除。

5.  set ,可以强制解析参数组。

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


转载于:https://my.oschina.net/wangzongtao/blog/655789

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值