当前位置: 首页 > 知识库问答 >
问题:

Bash中带有多个表达式的复合if语句

闻修筠
2023-03-14
if ( arg1 || arg2 || arg 3) {}

我确实做到了这一点,但我得到了以下错误

line 11: [.: command not found

if [ $char == $';' -o $char == $'\\' -o $char == $'\'' ]
then ...

我尝试了不同的方法,但似乎没有一个奏效

共有1个答案

韦修文
2023-03-14

对于Bash,您可以使用[[]]表单而不是[],后者在内部允许&&:

if [[ foo || bar || baz ]] ; then
  ...
fi

否则,您可以在外部使用通常的布尔逻辑运算符:

[ foo ] || [ bar ] || [ baz ]

...或者使用特定于test命令的运算符(尽管POSIX规范的现代版本将此XSI扩展描述为不推荐的--请参见应用程序用法一节):

[ foo -o bar -o baz ]
test foo -o bar -o baz
 类似资料:
  • 我试图让if语句从多个条件触发,而不使用不同的触发器多次重写该语句。例如。: 你会如何把这些浓缩成一个陈述? 我尝试过使用'or',它导致任何原始输入触发语句,而不管输入是否匹配任一条件。

  • dplyr/rlang:带有多个表达式的parse_expr 例如,如果我想解析一些字符串来改变,我可以 但是当我想解析任何带有特殊字符的文本时,比如“,”它会给出一个错误, 有什么方法可以解决这个问题吗? 谢谢

  • 问题内容: 我试图获得一个if语句从多个条件中触发,而不用不同的触发器多次重写该语句。例如: 您如何将这些内容浓缩成一个陈述? 我试过使用“或”,并且无论输入是否符合任何条件,它都会导致任何raw_input触发语句。 问题答案: 你想做的是 如果您有很多可能性,请选择另一个选项: 由于您使用的是2.7,因此您也可以这样编写(在2.7或3+版本中有效,但在2.6或以下版本中无效): 这使元素成为您

  • 我有一个工作正则表达式来提取一些信息。php代码如下所示: https://ideone.com/UdIaA7 与str:https://regex101.com/r/rF0uP7/5 带有str2的正则表达式:https://regex101.com/r/cV6iF9/1 然而,它在str上工作得很好,但在str2上却不匹配,我找不到原因

  • 问题内容: 我们都知道python的 句法。 但是,列表理解的 AST表示可以容纳多个’if’表达式: 有人可以给我一个python代码示例,该示例会生成带有多个“ if”表达式的AST吗? 问题答案: 只需将它们一个接一个地堆叠: 产生介于11和49之间(含)的整数。

  • 指定在表达式计算结果为 TRUE 时执行的命令。 if(表达式) 备注 包含表达式的 if 语句与像 If FoundColor <> Blue 这样的传统 if 语句的区别是,它在单词“if”后的字符为左大括号。尽管通常把整个表达式包围在括号中,不过也可以写成这样:if (x > 0) and (y > 0)。此外, 如果单词 "if" 后是 函数调用 或者类似 "not" 或 "!" 的运算符