这两种方式在bash中有什么区别?

时间:2013-06-26 02:08:20

标签: bash

这两者有什么区别?

  1. 使用&&||

    command1 && command2 || command3
    
  2. 使用ifelse

    if command1  
    then  
        command2  
    else  
        command3  
    fi
    

2 个答案:

答案 0 :(得分:4)

后者将始终直观地正确工作。前者具有可以执行command2command3的边界条件。

答案 1 :(得分:2)

在第一个例子中,如果command1或command2失败,将执行command3:如果command1通过但command2失败,则执行command3。在if-then-else示例中,command3仅在command1失败时执行。

换句话说,第一个,当翻译成if-then-else时变为:

if command1
then
    if !command2
    then
        command3
    fi
else
    command3
fi

使用command1 = true,command2 = false和command3 = echo'thing',您可以看到差异。 &&-||版本:

true && false || echo 'something'

将产生something作为输出。使用if-then-else版本时:

if true
then
    false
else
    echo 'something'
fi

你没有输出。