shell变量的相关操作(1)

扩展变量

${parameter-default} -- 如果变量parameter没被声明, 那么就使用默认值.
${parameter:-default} -- 如果变量parameter没被设置, 那么就使用默认值.

$ echo ${username0}   #前面没有申明和设置$username0变量,所以这里显示为空

$ echo ${username0-`whoami`}  #变量没有被申明,就使用默认值,whoami命令的结果是b (b是当前用户名)
b
$ echo ${username0:-`whoami`}  #变量没有被设置,就使用默认值
b
$ username0=   # 申明并设置username0变量的值为空,即设置为空
$ echo ${username0-`whoami`}   #使用变量本身的值,即空值

$ echo ${username0:-`whoami`}  #使用默认值
b

$ username0=1   #申明并设置username0变量的值为1
$ echo ${username0-`whoami`}  # 使用变量本身的值
1
$ echo ${username0:-`whoami`}  # 使用变量本身的值
1

${parameter=default} -- 如果变量parameter没声明, 那么就把它的值设为default.

${parameter:=default} -- 如果变量parameter没设置, 那么就把它的值设为default.

# 没有申明和设置$username2变量
$ echo ${username2=`whoami`}  #如果变量没有申请,就把它的值设置为默认值
b
$ echo ${username2:=`whoami`}  #如果变量没有设置,就把它的值设置为默认值
b
$ username2=    #申请并设置username2变量的值为空,即没有设置

$ echo ${username2=`whoami`}   #变量已经申明,显示这个变量的值 

$ echo ${username2:=`whoami`}   #变量没有设置值,所以使用默认值
b

$ username2=tom
$ echo ${username2=`whoami`}   #变量已经申明,显示变量的值
tom
$ echo ${username2:=`whoami`}   #变量已经设置,显示变量的值
tom

${parameter+alt_value} -- 如果变量parameter被声明了, 那么就使用 alt_value, 否则就使用null字符串.

${parameter:+alt_value} -- 如果变量parameter被设置了, 那么就使用alt_value, 否则就使用null字符串.

# 没有申请和设置username3变量
$ echo ${username3+`whoami`}  #变量没有申明,输出为空

$ echo ${username3:+`whoami`}   #变量没有设置,输出为空


$ username3=   #申明并设置变量为空

$ echo ${username3+`whoami`}  #变量被申明,使用whoami的值
b
$ echo ${username3:+`whoami`}   #变量没有被设置,输出为空

$ username3=cat  #申明并设置变量的值
$ echo ${username3+`whoami`}  #变量被申明,使用whoami的值
b
$ echo ${username3:+`whoami`}   #变量被设置,使用whoami的值
b

${parameter?err_msg} -- 如果parameter已经被声明, 那么就使用设置的值, 否则打印err_msg错误消息.
${parameter:?err_msg} -- 如果parameter已经被设置, 那么就使用设置的值, 否则打印err_msg错误消息.

# 没有申明和设置var变量
$ echo ${var?"abcde"}    #显示err_msg消息
bash: var: abcde
$ echo ${var:?"abcde"}    #显示err_msg消息
bash: var: abcde

$ var=    # 申明并设置空值
$ echo ${var?"abcde"}   #使用空值

$ echo ${var:?"abcde"}  #var的值为空值,所以显示err_msg消息
bash: var: abcde

$ var=12345
$ echo ${var?"abcde"}   #使用设置的值
12345
$ echo ${var:?"abcde"}   #使用设置的值
12345

$ ${var?}
bash: 12345: command not found





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值