关闭

shell变量拓展

169人阅读 评论(0) 收藏 举报
分类:

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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:39031次
    • 积分:746
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:4篇
    • 译文:0篇
    • 评论:7条
    文章分类
    最新评论