跳转至

13. shell扩展变量

3.10 shell扩展变量

rtn=${变量:-str}      如果变量值为空,则rtn=str,不为空,则rtn=变量值
rtn=${变量:=str}      如果变量值为空,则rtn=str,变量值=str
rtn=${变量:?str}      如果变量值为空,则stderr输出为str
rtn=${变量:+str}      如果变量值为空,则不执行。不为空,则rtn=str

案例

#准备var1=1,var2为空
[root@151 ~]# var1=1
[root@151 ~]# echo $var1
1
[root@151 ~]# echo $var2

[root@151 ~]#
#1.
[root@151 ~]# r1=${var1:-haha}
[root@151 ~]# r2=${var2:-haha}
[root@151 ~]# echo $r1
1
[root@151 ~]# echo $r2
haha
#2.
[root@151 ~]# r1=${var1:=haha}
[root@151 ~]# r2=${var2:=haha}
[root@151 ~]# echo $r1
1
[root@151 ~]# echo $r2
haha
[root@151 ~]# echo $var1
1
[root@151 ~]# echo $var2
haha
#3.
[root@151 ~]# r2=${var2:?haha}
-bash: var2: haha
#4.
[root@151 ~]# r1=${var1:+haha}
[root@151 ~]# r2=${var2:+haha}
[root@151 ~]# echo $r1
haha
[root@151 ~]# echo $r2

实际应用

# 删除7天前备份的数据库文件!
find ${dir_path:=/data/mysql_back_data/} -name '*.tar.gz' -type f -mtime +7 |xargs rm -fr

最后更新: 2022-02-19 13:59:07