一、shell字符串详解
在shell中,使用==${}==符号从指定字符串开始截取
* 是指通配符,而非正则表达式,用于标识任意长度的字符串
1、使用#号截取右边的字符串
${string#*chars} 忽略左边的所有字符,直到遇到chars (第一个chars)(chars 不会被截取)
url=https://:www.csdn.net/
echo ${url#*:}
//www.csdn.net/
[yiifung@localhost ~]$ url=https://:www.csdn.net/
[yiifung@localhost ~]$ echo ${url#*:}
//:www.csdn.net/
[yiifung@localhost ~]$
${string##*chars} 忽略左边的所有字符,直到遇到chars (最后一个chars)(chars 不会被截取)
url=https://:www.csdn.net/
echo ${url##*:}
www.csdn.net/
[yiifung@localhost ~]$ url=https://:www.csdn.net/
[yiifung@localhost ~]$ echo ${url##*:}
www.csdn.net/
[yiifung@localhost ~]$
2、使用%号截取左边的字符串,
${string%chars*} 从字符串右边开始,忽略右边的所有字符,直到遇到chars (第一个chars)(chars 不会被截取)
url=https://:www.csdn.net/
echo ${url%/*}
https://:www.csdn.net
[yiifung@localhost ~]$ url=https://:www.csdn.net/
[yiifung@localhost ~]$ echo ${url%/*}
https://:www.csdn.net
[yiifung@localhost ~]$
${string%%chars*}从字符串右边开始,忽略右边的所有字符,直到遇到chars (最后一个chars)(chars 不会被截取)
url=https://:www.csdn.net/
echo ${url%%/*}
http:
[yiifung@localhost ~]$ url=https://:www.csdn.net/
[yiifung@localhost ~]$ echo ${url%%/*}
https:
[yiifung@localhost ~]$
3、字符串赋值
${VAR:-string} 如果VAR变量为空则返回string
${VAR:+string} 如果VAR变量不为空则返回string
${VAR:=string} 如果VAR变量为空则重新赋值VAR的变量值为string
${VAR:?string} 如果VAR变量为空则将string输出到stderr