特殊shell扩展变量

  • 这四个扩展变量(+,-,=,?),都属于对变量的值进行判断、处理
如果parameter变量值为空,返回word字符串,赋值给result变量

result=${parameter:-word}

如果parameter变量值为空,则word替代变量值,且返回其值
result=${parameter:=word}

如果para变量为空,word当做stderr输出,否者输出变量值
用于设置变量为空导致错误时,返回的错误信息
${para:?word}

如果para变量为空,什么都不做,否则word返回给接受者
${para:+word}
  • 实际案例
[root@localhost cahnge_more_file]# res=${name1:-madaha}
[root@localhost cahnge_more_file]# echo $res
madaha

[root@localhost cahnge_more_file]# unset name1
[root@localhost cahnge_more_file]# echo $name1

[root@localhost cahnge_more_file]# res=${name1:=madaha}
[root@localhost cahnge_more_file]# echo $res
madaha
[root@localhost cahnge_more_file]# echo $name1
madaha

[root@localhost cahnge_more_file]# unset name1
[root@localhost cahnge_more_file]# ${name1:?}
-bash: name1: 参数为空或未设置
[root@localhost cahnge_more_file]# ${name1:?未设置参数啊啊啊啊啊}
-bash: name1: 未设置参数啊啊啊啊啊

[root@localhost cahnge_more_file]# unset res
[root@localhost cahnge_more_file]# echo $res

[root@localhost cahnge_more_file]# res=${name:+madaha}
[root@localhost cahnge_more_file]# echo $res
madaha

# 删除指定目录下面某个时间一下的文件
path=/data/mysql/logs
find ${path:=/data/mysql/logs} -name *.tar.gz* -type f -mtime +7 |  xargs rm -f
posted @   savagee  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示