linux变量默认值、覆盖值的用法

linux变量校验、默认值、覆盖值的用法

一、前言

在 bash 的脚本中,经常会用到变量的判断和替换等操作,每次都是用到的时候才进行百度,用完之后就忘了。。。

这次正好有时间,总结用法

二、变量默认值(原变量值未修改)

格式:${vari:-defaultValue}

当var没有定义时,此时使用defaultValue, 而vari依然为空,没有改变值

2.1、测试脚本

# 创建测试脚本
$ cat > test.sh <<EOF
#!/bin/bash
echo \${name:-'张三'}

echo \${name}
EOF

# 脚本添加执行权限
$ chmod u+x test.sh

# 执行脚本,发现 name 变量的值还是为空,并为发生变化
$ sh test.sh 
张三

三、变量默认值(变量重新赋值)

格式:${vari:=defaultValue}

当vari没有定义时,此时使用defaultValue, 同时vari也被赋值为defaultValue

3.1、测试脚本

# 创建测试脚本
$ cat > test.sh <<EOF
#!/bin/bash
echo \${name:='张三'}

echo \${name}
EOF

# 脚本添加执行权限
$ chmod u+x test.sh

# 执行脚本,发现 name 变量的值已经重新赋值
$  sh test.sh  
张三
张三

四、变量值校验

格式:${vari:?value}

格式:${vari:?}

当vari没有定义时,或者定义了值为空,将在终端报错并且退出,用于检查是否定义以及是否为空

4.1、测试脚本

# 创建测试脚本
$ cat > test.sh <<EOF
#!/bin/bash
echo \${name:?'张三'}

echo \${name}
EOF

# 脚本添加执行权限
$ chmod u+x test.sh

# 执行脚本,发现已报错
$  sh test.sh  
test.sh: line 2: name: 张三

五、变量不为空则替换(原变量值未修改)

格式:${vari:+value}

当vari定义并且不为空,将用value替换vari的值,否则什么也不做, 与${vari:-value}相反

5.1、测试脚本

# 创建测试脚本
$ cat > test.sh <<EOF
#!/bin/bash
name=lisi
echo \${name:+'张三'}

echo \${name}
EOF

# 脚本添加执行权限
$ chmod u+x test.sh

# 执行脚本,发现 name 变量的值已经重新赋值
$  sh test.sh  
张三
lisi
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值