SHELL(3)-高级变量赋值
${}还可针对变量的不同状态(没设定、空值、非空值)进行赋值:
1、${var-name} :假如 $var 没有设定,则使用 name 作传回值。(空值及非空值时不作处理);
1 2 3 4 5 | ~] # unset var ~] # echo $var ~] # echo ${var-name} name |
2、${var:-name} :假如 $var 没有设定或为空值,则使用 name 作传回值。(非空值时不作处理)
3、${var+name}:假如 $var 设为空值或非空值,均使用 name作传回值。(没设定时不作处理)
4、${var:+name}:若 $var 为非空值,则使用 name 作传回值。(没设定及空值时不作处理)
5、${var=name} :若 $var 没设定,则使用 name 作传回值,同时将 $file 赋值为 name。(空值及非空值时不作处理)
6、${var:=name} :若 $var 没设定或为空值,则使用 my.file.txt 作传回值,同时将 $file 赋值为 name 。(非空值时不作处理)
7、${var?name} :若 $var 没设定,则将 name输出至 STDERR。(空值及非空值时不作处理)
8、${var:?name}:若 $var 没设定或为空值,则将 name 输出至 STDERR。(非空值时不作处理)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」