shell中字符变量的删除, 替换, 截取, 索引与切片

1. 定义变量时, 注意=号两边不要有空格; 如: a=www.xxxxx.oooo


2. 变量引用的两种方法: echo $a 或者 echo ${a}


3. 获取变量的长度: echo ${#a}


4. 变量的删除: echo ${a#ww} # 从变量值开头删除两个w, 此操作不影响原变量的值


5. echo ${a#.} 和 echo ${a##.}的区别; 一个#表时从前往后, 非贪婪, 到第一个点停住;
  ##也是从前往后, 贪婪, 到最后一个点处停止;
6. echo ${a%.} 和 echo ${a%%.}的区别; 同上, 从后往前删, 非贪婪和贪婪


7. 索引和切片: echo ${a:5:5} # 注意切片时第一个5表示从第几个索引开始, 后面的5表示切出来几个


8. 替换操作: echo ${a/xxxxx/yy/} # 将a值中的xxxxx替换为yy, 风格有些类似sed的用法


9. 替换的贪婪模式: echo ${a//x/X/} # //表示贪婪, 替换所有的小写x为大写, 使用/时只替换一个


10.使用unset命令来取消设定的变量: unset a # 即取消掉a变量


11.变量定义的另一种方法: echo ${b-888} # 如果b被定义过, 哪怕是空值也不会被888替代; 如果没有定义变量b, 则定义,并赋值为-后的内容


12.echo ${b:-888} # 只要b不是空值, 就不会被888替代, 否则被888替代;


13.echo ${b:=888} echo ${b:+888} echo ${b:?888} 还有这些特殊用法, 及去掉:号的用法

猜你喜欢

转载自www.cnblogs.com/quzq/p/12104360.html
今日推荐