unix shell 编程赋值

1.指定缺省值 :- :=

echo "${color:-blue}"

输出为 blue

color=red

echo "${color:-blue}"

输出为 red

:- 和 := 效果是一样的

2.覆盖 :+

color=red

echo "${color:+blue}"

输出为 blue

3.检查是否存在 :?

color5=red

echo "${color5:?blue}"

输出为 red

unset color5

echo "${color5:?blue}"

输出为 -bash: color5: blue

变量配置方式 str 没有配置 str 为空字符串 str 已配置非为空字符串
var=${str-expr} var=expr var= var=$str
var=${str:-expr} var=expr var=expr var=$str
var=${str+expr} var= var=expr var=expr
var=${str:+expr} var= var= var=expr
var=${str=expr} str=expr
var=expr
str 不变
var=
str 不变
var=$str
var=${str:=expr} str=expr
var=expr
str=expr
var=expr
str 不变
var=$str
var=${str?expr} expr 输出至 stderr var= var=$str
var=${str:?expr} expr 输出至 stderr expr 输出至 stderr var=$str

变量配置方式 说明
${变量#关键词}
${变量##关键词}
若变量内容从头开始的数据符合『关键词』,则将符合的最短数据删除
若变量内容从头开始的数据符合『关键词』,则将符合的最长数据删除
${变量%关键词}
${变量%%关键词}
若变量内容从尾向前的数据符合『关键词』,则将符合的最短数据删除
若变量内容从尾向前的数据符合『关键词』,则将符合的最长数据删除
${变量/旧字符串/新字符串}
${变量//旧字符串/新字符串}
若变量内容符合『旧字符串』则『第一个旧字符串会被新字符串取代』
若变量内容符合『旧字符串』则『全部的旧字符串会被新字符串取代』

posted @ 2013-10-20 17:32  Homura  阅读(345)  评论(0编辑  收藏  举报