【问题标题】:bash, how to use OR || operator in If statement?bash,如何使用或 || If语句中的运算符?
【发布时间】:2014-12-03 23:54:00
【问题描述】:

谁能告诉我这个语法有什么问题:

if [ "$1" == "postfix" || "$1" == "all" ]; then
    echo test
fi

【问题讨论】:

  • [ a == b ] || [ c == d ][ a == b -o c == d ]。或者[[ ... ]]

标签: bash if-statement syntax comparison


【解决方案1】:

使用任一

if [ "$1" = "postfix" ] || [ "$1" = "all" ]; then

if [ "$1" = "postfix" -o "$1" = "all" ]; then

|| 结合了两个命令([ 是一个命令)。在[ ... ] 中,运算符-o 用于

使用|| 的另一种方法是在[[ 内部使用它而不是[

无论如何,正确的相等运算符是 =[ ... ] 因为它是 POSIX 标准(根据 man bash)。不过,== 受支持。

【讨论】:

    【解决方案2】:

    如果您想这样做,请使用[[ 测试表:

    if [[ $1 == "postfix" || $1 == "all" ]; then
    

    [[ 是一个 bash 关键字,类似于(但比)[ 命令更强大。请参阅 http://mywiki.wooledge.org/BashFAQ/031http://mywiki.wooledge.org/BashGuide/TestsAndConditionals 除非您正在编写 POSIX sh,否则我们推荐 [[

    if [ "$1" == "postfix" ] || [ "$1" == "all" ]; then
    

    【讨论】:

    • 我的回答没有太大区别,所以⁺¹来自我 ;-)
    猜你喜欢
    • 2012-11-04
    • 2021-11-14
    • 1970-01-01
    • 2012-12-28
    • 2013-04-30
    • 2015-06-27
    • 2012-11-05
    相关资源
    最近更新 更多