How to write if else in one line in shell?

前端 未结 3 579
执笔经年
执笔经年 2020-12-19 04:45

I would like to write in one line this:

if [$SERVICESTATEID$ -eq 2]; then echo \"CRITICAL\"; else echo \"OK\"; fi

So to do a test in my she

相关标签:
3条回答
  • 2020-12-19 05:08

    Shorter format.

    ( [ 2 -eq 3 ] && echo "CRITICAL" ) || echo "OK"
    
    0 讨论(0)
  • 2020-12-19 05:13

    Write like this, space is required before and after [ and ] in shell

    if [ 2 -eq 3 ]; then echo "CRITICAL"; else echo "OK"; fi
    
    0 讨论(0)
  • 2020-12-19 05:25

    Space -- the final frontier. This works:

    if [ $SERVICESTATEID -eq 2 ]; then echo "CRITICAL"; else echo "OK"; fi
    

    Note spaces after [ and before ] -- [ is a command name! And I removed an extra $ at the end of $SERVICESTATEID.

    An alternative is to spell out test. Then you don't need the final ], which is what I prefer:

    if test $SERVICESTATEID -eq 2; then echo "CRITICAL"; else echo "OK"; fi
    
    0 讨论(0)
提交回复
热议问题