Linux Shell变量设置默认值

向右看齐 2024-03-26 12:40 109阅读 0赞

${var:-default}

  1. var为空,用default作为返回值。
    var不会被设置,不改变var值。
  2. var不为空,返回var的值。

    $ echo ${msg}

    $ echo ${msg:-hello}
    hello
    $ echo ${msg}

${var:+default}

  1. var为空,无操作。
  2. var不为空,返回值default。不改变var值。

    $ unset msg
    $ echo $msg

    $ echo ${msg:+world}

    $ msg=hello
    $ echo $msg
    hello
    $ echo ${msg:+world}
    world
    $ echo $msg

${var:=default}

  1. var为空,返回值default;同时,设置var值为default,var被修改。
  2. var不为空,返回var的值,不会修改。

    $ echo $msg

    $ echo ${msg:=hello}
    hello
    $ echo ${msg}
    hello
    $ echo ${msg:=world}
    hello

${var:?error_message}

  1. var为空,打印错误提示error_message。
  2. var不为空,返回var值。

    $ echo ${msg}
    hello
    $ echo ${msg?’Error: msg is not set! ‘}
    hello
    $ echo ${message}

    $ echo ${message?’Error: message is not set! ‘}
    bash: message: Error: message is not set!

在bash中,中间的’:’可以省略。

发表评论

表情:
评论列表 (有 0 条评论,109人围观)

还没有评论,来说两句吧...

相关阅读