shell变量拓展

Shell变量拓展
1.模式匹配
${var%pattern}, ${var%%pattern},${var#pattern}, ${var##pattern}
# 是去掉左边
% 是去掉右边
#和%中的单一符号是最小匹配,两个相同符号是最大匹配

2.提取和替换
${var: num}, ${var: num1:num2},只有num1可为负,num1前加空格
${var/pattern/pattern}, ${var//pattern/pattern}
①判断变量a是否包含在变量b
[[ ${a/${b}//} != $a ]] && echo ok

②判断脚本参数是否带-
[[ ${@/-/} != $@ ]] && echo ok

③字符串反转
a=12345;for((i=${#a};i>-1;i–));do echo -n ${a:${i}:1}; done;echo

④批量改文件名
for a in `ls` ;do mv $a ${a/old/new/};done

⑤替换支持通配符
var=‘michaelzeng.tar.gz’; echo ${var1/.t*gz/}

3.变量的默认值处理
使用某变量时最好考虑到其为空或者值为多个的情况
${var:-string} 如果变量为空或未定义,则返回string;否则返回原值
${var:=string} 如果变量为空或未定义,则返回string,并把string值赋值给变量;否则返回原值
${var:+string} 如果变量不为空,则返回string;若为空则返回空值
${var:?string} 如果变量为空或未定义,则string会写入标准错误流,本语句失败;若不为空则返回原值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值