字串截取
子串的截取方法
- 使用 、${}表达式
格式:${var:起始位置:长度} 起始位置默认为0,可省略
子串截取实列
[]
[root~]# NM="hello world"
[root~]# echo ${NM:0:6}
hello
子串替换
子串替换的方法
- 只替换第1个匹配结果 格式: ${var/old/new}
- 替换全部匹配结果 格式: ${var//old/new/}
子串替换实例
[root~]# NM="Tarena IT Group."
[root~]# echo ${NM/a/##}
T##rena IT Group
[root~]# echo ${NM//a/##}
T##ren##IT Group.
按条件掐头去尾
字符串掐头
-
从左到右,最短匹配删除
格式: ${变量名#*关键词}
-
从左向右,最长匹配删除
格式:${变量名##*关键词}
字符串去尾
- 从右向左,最短匹配删除 格式:${变量名%关键词*}
- 从右向左,最长匹配删除 格式:${变量名%%关键词*}
实例
[root~]# MDIR="/var/spoolmail/root"
[root~]# echo ${MDIR#*/}
var/spool/mail/root //删除到最近匹配
[root~]# echo ${MDIR##*/} //删除到最远匹配
root
[root~]# MDIR='/var/spool/mail/root'
[root~]# echo ${MDIR%O*}
/var/spool/mail/ro
[root~]# echo ${MDDIR%%O*}
/var/sp
变量初始值处理
初值的检测及设置
取值
- 若变量var已存在且非Null,则返回$var的值
[root~]# NM="hello world"
[root~]# echo ${NM:-shell}
hello world
[root~]# unset NM
[root~]# echo ${NM:-shell}
shell