bash,如何使用OR || if语句中的运算符?

时间:2014-12-03 23:54:00

标签: bash if-statement syntax comparison

有人能告诉我这种语法有什么问题:

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

2 个答案:

答案 0 :(得分:2)

使用

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

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

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

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

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

答案 1 :(得分:1)

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

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