Bash脚本新手。我在脚本文件中遇到了这一行,我发现很难理解
[ "$variable" ] || echo 'variable is unset or empty!' >&2
||
用于什么?
答案 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 else
或something && 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
的文件。否则(||
或)打印错误消息并退出。