美文网首页
bash的三元操作符

bash的三元操作符

作者: CodingCode | 来源:发表于2021-07-04 07:07 被阅读0次

    类似其他高级语言的(?:)操作符:

    如果用标准的bash语句来实现就是:
    用if语句:

    if [ "$a" == "a" ]; then
       b="b1"
    else
       b="b2"
    fi
    
    # or one-line syntax
    if [ "$a" == "a" ]; then b="b1"; else b="b2"; fi
    

    用case语句:

    case "$a" in
     a) b="b1" ;;
     *) a="b2" ;;
    esac
    

    在bash里面可以这么用

    [ condition ] && variable=value_if_true || variable=value_if_false
    

    举例来说:

    [ "$a" == "a" ] && b="b1" || b="b2"
    

    换一种写法:

    b=$([ "$a" == "a" ] && echo "b1" || echo "b2")
    

    如果只是判断变量是否存在,还可以简化

    b=${a:-"b"}
    

    即如果变量a已经定义,则把a的值赋给b,否则把字符串"b"赋给变量b。

    如果是数字,还可以加简化:

    (( b = a==0 ? 10 : 20 ))
    

    或者

    (( a == 0 ? (b=10) : (b=20) ))
    

    相关文章

      网友评论

          本文标题:bash的三元操作符

          本文链接:https://www.haomeiwen.com/subject/djkmultx.html