首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在同一级别使用多个"and“或" or”编写测试?

如何在同一级别使用多个"and“或" or”编写测试?
EN

Stack Overflow用户
提问于 2017-10-06 20:27:08
回答 2查看 58关注 0票数 1

bash test似乎不支持带有多个参数的逻辑测试:

代码语言:javascript
复制
[ expr1 -o expr2 -o expr3 -o expr4 ]

nor

代码语言:javascript
复制
[[ expr1 || expr3 || expr3 || expr4 ]]

'-a‘和'&&’也是如此。如何在没有太多嵌套大括号的情况下以整齐的方式编写这样的条件(特别是.当有更多的部件处于状态时)?

EN

Stack Overflow用户

发布于 2017-10-06 20:41:34

下面的示例适用于我在Bash 4中的工作,例如

代码语言:javascript
复制
$ [ 1 = 1 -a 2 = 2 -a 3 = 3 -a 4 = 4 ] && echo True || echo False
True
$ [ 1 = 1 -a 2 = 2 -a 3 = 3 -a 4 = 0 ] && echo True || echo False
False
$ [ 1 = 1 -o 2 = 2 -o 3 = 3 -o 4 = 4 ] && echo True || echo False
True
$ [ 1 = 1 -o 2 = 0 -o 3 = 0 -o 4 = 0 ] && echo True || echo False
True
$ [ 1 = 0 -o 2 = 0 -o 3 = 0 -o 4 = 0 ] && echo True || echo False
False

根据man [ (或man test):

对于两端,始终使用-a-o进行评估。

要避免这种情况,请编写:[ -z abc ] && [ -w file ].

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46605743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档