加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell变量------变量替换

发布时间:2020-12-15 23:17:15 所属栏目:安全 来源:网络整理
导读:变量替换表 ${value:-word} 如果变量名存在且非null。则返回变量的值,否则,返回word字符串。 用途:如果变量未定义,则返回默认值 范例:${value:-word},如果value未定义,则表达式的值为word。 ${value:=word} 如果变量名存在且非null,则返回变量值。否
变量替换表
${value:-word}

如果变量名存在且非null。则返回变量的值,否则,返回word字符串。

用途:如果变量未定义,则返回默认值

范例:${value:-word},如果value未定义,则表达式的值为word。

${value:=word}

如果变量名存在且非null,则返回变量值。否则,设置这个变量值为word,并返回其值。

用途:如果变量未定义,则设置变量为默认值,并返回默认值。

范例:${value:=word},如果value未定义,则设置value值为word,返回表达式的值也为word。

${value:?"not defined"}

如果变量名存在且非null,则返回变量的值。否则显示变量名:message,并推出当前的命令或者脚本。

用途:用于捕捉由于变量未定义而导致的错误,并推出程序。

范例:${value:?  "not defind"}如果value未定义,则显示-bash:value:not defined并推出。

${value:+word}

如果变量名存在且非null,则返回word,否则返回null。

用途:测试变量是否存在

范例:${value:+word}如果value已经定义。返回word(也就是真)

每个运算符内的冒号都是可选的,如果省略冒号,则将没定定义中的“存在且非null”部分改为“存在”,也就是说,运算符仅用于测试变量是否存在。

  • ${value:-word}

当变量未定义或者返回值为空时,返回值为word内容,否则返回变量的值。

[[email?protected] yusheng]# result=${test:-UNSET}
[[email?protected] yusheng]# echo $result
UNSET
[[email?protected] yusheng]# echo $test
#====>这里是空
View Code

结论:当test变量没有内容时,就返回了后面的UNSET

View Code

结论:当test变量有内容时,就返回了test变量的内容

  • ${value:=word}

[[email?protected] yusheng]# result=${test:=UNSET}
[[email?protected] yusheng]# echo $result
UNSET
[[email?protected] yusheng]# echo $test
UNSET
#提示:变量不存在时,会给变量赋值后面的内容,确保变量始终有值
View Code
  • ${value:?"not defined"}

[[email?protected] yusheng]# echo ${value:?"not defined"}
-bash: value: not defined
[[email?protected] yusheng]# value=1
[[email?protected] yusheng]# echo ${value:?"not defined"}
1
[[email?protected] yusheng]# unset value
[[email?protected] yusheng]# echo ${value:?"not defined"}
-bash: value: not defined
#提示:用于捕捉由于变量未定义而导致的错误,如:"not defined"
View Code
  • ${value:+word}

[[email?protected] yusheng]# result=${value:+1}
[[email?protected] yusheng]# echo $result

[[email?protected] yusheng]# value="handsome boy"
[[email?protected] yusheng]# result=${value:+1}
[[email?protected] yusheng]# echo $result
1
#提示:用于测试变量是否存在
View Code

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读