shell高级技巧-变量替换运算符

本文介绍了Bash shell中用于检查和修改变量的高级技巧,包括一组特殊的修改符,它们能便捷地判断变量是否已设置,并将结果赋值给新的变量。
摘要由CSDN通过智能技术生成
bash中提供了一组可以同时检验和修改变量的特定修改符。这些修改符提供了一个快捷的方法来检验变量是不是被设置过,并把输出结果输出到一个变量中,见下表:
修改符 描述 用途
${variable:-word} 如variable被设置且非空,则返回该值,否则返回word,变量值不变。 如变量未定义,返回默认值。
${variable-word} 如variable未被设置,则返回word,变量值不变,如果设置变量,则返回变量值,即使变量的值为空值。 如变量未设置,返回默认值。
${variable:=word} 如variable被设置且非空,则返回该值,否则设置变量为word,同时返回word。 如果变量未定义,则设置其为默认值。
${variable=word} 如variable未设置,则设置变量为word,同时返回word,如果variable被设置且为空,将返回空值,同时variable不变。否则返回variable值,同时variable不变。 如果变量未设置,则设置其为默认值。
${variable:+word} 如variable被设置且非空,则返回word,否则返回null,变量值不变。 用于测试变量是否存在。
${variable+word} 如variable被设置(即使是空值),则返回word,否则返回空。 用于测试变量是否设置。
${variable:?word} 如variable被设置且非空,则返回该值,否则显示word,然后退出Shell。 如果word为空,打印"parameter null or not set" 为了捕捉由于变量未定义所导致的错误。
${variable:offset} 从variable的offset位置开始取,直到末尾。
${variable:offset:length} 从variable的offset位置开始取length个字符。
    #${
   variable:-word}的示例,其C语言表示形式为:
    #    if (NULL == variable)
    #        return word;
    #    else
    #        return $variable;
    [root@xieqichao ~]# unset var_name                        #将变量var_name置为空。
    [root@xieqichao ~]# var_name=
    [root@xieqichao ~]# echo ${
   var_name:-NewValue}    #var_name为空,因此返回NewValue
    NewValue
    [root@xieqichao ~]# echo $var_name                        #var_name的值未变化,仍然为空。

    [root@xieqichao ~]# var_name=OldValue                   #给var_name赋值。
    [root@xieqichao ~]# echo ${
   var_name:-NewValue}    #var_name非空,因此返回var_name的原有值。
    OldValue
    [root@xieqichao ~]# echo $var_name                        #var_name的值未变化,仍然OldValue。
    OldValue

    #${
   variable-word}的示例,其伪码表示形式为:
    #    if (variable is NOT set)
    #        return word;
    #    else
    #        return $variable;
    [root@
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值