bash while循环中OR条件的语法

时间:2017-08-13 06:20:11

标签: bash while-loop

我尝试了许多不同的组合,包括brakets,引号,Animated.Value||,但是脚本在没有无限循环的情况下工作的唯一方法是没有OR in while循环比较,如下所示:{{ 1}}这是我想要运行的脚本示例:

-o

2 个答案:

答案 0 :(得分:3)

在while语句的条件下,您应该使用&&而不是||

您正在尝试从标准输入读取名称,如果该名称是" Jorge"或者" Eduardo",你已经完成了。当它处于while状态时,你想继续在循环中的名字,如果不是" Jorge" 这个名字不是" Eduardo"。

你当前的状况是如果名字不是" Jorge"那么继续循环。 这个名字不是" Eduardo"。并且名称不能同时出现。

答案 1 :(得分:2)

使用正则表达式:

while [[ ! "$name" =~ ^(Jorge|Eduardo)$ ]]; do

或Bash extented globbing

shopt -s extglob
while [[ "$name" != @(Jorge|Eduardo) ]]; do