||是什么意思在Bash Script中测试条件之后

时间:2015-04-14 05:13:50

标签: linux bash

Bash脚本新手。我在脚本文件中遇到了这一行,我发现很难理解

[ "$variable" ] || echo 'variable is unset or empty!' >&2

||用于什么?

4 个答案:

答案 0 :(得分:3)

它是逻辑OR运算符。当且仅当测试条件返回非零退出状态时才执行echo。

请点击此处了解更多详情: http://bash.cyberciti.biz/guide/Logical_OR

答案 1 :(得分:3)

大致翻译成英文,这意味着“如果失败了,请改为执行此操作。”

答案 2 :(得分:3)

基本上,如果第一个命令成功,则第二个命令永远不会被执行。

1 == 1 || echo 'math is broke'

答案 3 :(得分:1)

表达式something || something elsesomething && something else的形式称为复合命令。可以有2个或更多命令,您可以使用{ ...; ...; }在每个||&&之后一起收集多个命令。例如,要检查用户是否在命令行上为脚本提供了2个有效的文件名:

[ -f "$1" ] && [ -f "$2" ] || {
    printf "error: invalid input. Usage: %s <file1> <file2>\n" "${0//\//}"
    exit 1
}

这只需要对第一个参数[ -f "$1" ]&&和)的测试,第二个参数[ -f "$2" ]的测试都是使每个测试评估为true的文件。否则(||或)打印错误消息并退出。