高级变量

高级变量
1变量扩展
基本型${变量名称}  {}也可以不使用,但是建议一般都加上;
变量存在的定义
  变量值为空 null
  变量值为非空
  变量值不存在  (比如使用unset命令)
 测试变量“存在与否”的基本用法
${待测变量-默认值}
有就传有,若没有,就传回一个指定值
 测试变量“不存在”或其值为空:“传回”一个默认值
${待测变量:-默认值}  
有就传有,若没有,就传回一个指定值   ###与上面一条区别:上面为空算有值,这里为空算没有值。
 
 测试变量“不存在”或其值为空:给变量设一个默认值
${待测变量:=默认值}
 测试变量“不存在”或其值为空:提示错误信息
${待测变量:?提示信息}
 测试变量的“存在性”
${待测变量:+真值}
若变量存在且其值非空,则传回“真值”;若不然,传回空值
总结上面的测试变量        目的                     判断条件           符合的处置方式                        不符合的处置方式
${待测变量:-默认值}      回传结果一定要有非空值   测试不存在或空值   传回默认值                             传回变量值
${待测变量:=默认值}      给空值变量设一个默认值   测试不存在或空值   把变量值设为默认值                     传回变量值
${待测变量:?提示信息}   检查条件是否完备         测试不存在或空值   显示变量名称:提示信息,停止执行       传回变量值
${待测变量:+真值}        判断某事是否为真         测试不存在或空值   传回默认值                             传回空值
2变量扩展
取字符串切片
  ${变量:位置起点}
  由指定位置开始,截取子字符串到字符串结束
  ${变量:位置起点:长度}
  由指定位置开始,截取指定长度的子字符串
  ***IFS “默认是空格符” “TAB” “换行字符” 组成
取部分位置参数
  ${@:起点}
  由起点开始,取得后面所有的位置参数
  ${@:起点:个数}
  由起点开始,取得指定个数的位置参数
计算字符串长度
  ${#变量名称}
  传回变量值的字符串长度
  计算字符串长度,也可以使用外部程序expr
   expr length “字符串”
   expr “字符串” :'.*'
3变量扩展:对比样式
由字符串前面对比,删除相符者
  由前面对比,删除最短
   ${变量#样式}
  由前面对比,删除最长
   ${变量##样式}
  由后面对比,删除最短
   ${变量%样式}
  由后面对比,删除最长
   ${变量%样式}
取代或删除部分字符串
  只替换第一个对比符合的字符串
  ${变量/样式/替换字符串}
  替换全部对比符合的字符串
  ${变量//样式/替换字符串}
把对比符合的字符串删除
  只删除一个
  ${变量/样式/}
  删除全部
  ${变量//样式/}
4变量扩展:
2命令替换
3算术扩展
 

你可能感兴趣的:(变量,职场,高级,休闲)