变量内容的删除
- 没有删除变量只是取出变量的部分
- url=www.sina.com.cn
- echo ${url#www.} //变量url删除www.
- echo ${url#www.si} //变量url删除www.si
- echo ${url#*si} //变量url删除到si
- echo ${url#*.} //删除到第一个点
- echo ${url##*.} //删除到最后一个点(也叫做贪婪匹配)
- echo ${url%m.cn} //从后往前删m.cn
- echo ${url%.*} //从后往前删除到一个点
- echo ${url%%.*} //从后往前删除到最后一个点
索引及切片
- echo ${url:0:5} //取出url变量中0开始后的5个
- echo ${url:5:5} //取出url变量中5开始后的5个
- echo ${url:5} //取出url变量中5以后的所有
变量内容的替换
- echo ${url/sina/baidu} //把sina替换成baidu
- echo ${url//n/N} //把所有的n替换成为N,贪婪匹配
变量的替代
- unset ip1
- echo ${ip1}
- echo ${ip1-aaaa}
- $(变量名-新的变量值)
- 变量没有被赋值:会被替代成新值
- 变量有被赋值(包括空值):不会被替代
- ${变量名:-新的变量值}
- 变量没有被赋值或空值,都会替代成新值
- 变量有被赋值(包括空值):不会被替代
- ${变量名:+新的变量值}
- 变量不是空的时候会被替代
- ${变量名:?新的变量值}
- 变量不为空把值输出出来
- 为空就替代然后并把新的变值输出到标准错误中