String Bash shell或';字符串的不一致比较失败
这类似于我在谷歌上搜索的帖子,但我找不到确切的答案。我尝试将两个字符串或与另一个两字符串比较:String Bash shell或';字符串的不一致比较失败,string,bash,String,Bash,这类似于我在谷歌上搜索的帖子,但我找不到确切的答案。我尝试将两个字符串或与另一个两字符串比较: elif [[ "$2" != "append" ]] || [[ "$2" != "replace" ]] 但即使键入了append或replace,测试也会失败。奇怪的是,一个简单的比较就能奏效: elif [[ "$2" != "append" ]] 因此,我知道问题出在或部分,但我无法解决问题。使用&而不是| elif [[ "$2" != "append" ]] && [
elif [[ "$2" != "append" ]] || [[ "$2" != "replace" ]]
但即使键入了append或replace,测试也会失败。奇怪的是,一个简单的比较就能奏效:
elif [[ "$2" != "append" ]]
因此,我知道问题出在或部分,但我无法解决问题。使用
&
而不是|
elif [[ "$2" != "append" ]] && [[ "$2" != "replace" ]]
如果使用| |
,则每个字符串都将通过测试。没有一个字符串同时等于append
和replace
如果$2既不是“append”也不是“replace”,我正在寻找执行elif语句的表达式
直接从英语翻译成代码有时有效,有时无效。这里没有。你真的在寻找一张支票,
$2
既不是“追加”也不是“替换”。没有NOR操作员。有一个AND运算符,如中所示:检查$2
是否为“append”,是否为“replace”。这是一个可以翻译的句子。使用&
而不是|
elif [[ "$2" != "append" ]] && [[ "$2" != "replace" ]]
如果使用| |
,则每个字符串都将通过测试。没有一个字符串同时等于append
和replace
如果$2既不是“append”也不是“replace”,我正在寻找执行elif语句的表达式
直接从英语翻译成代码有时有效,有时无效。这里没有。你真的在寻找一张支票,
$2
既不是“追加”也不是“替换”。没有NOR操作员。有一个AND运算符,如中所示:检查$2
是否为“append”,是否为“replace”。这是一个可以翻译的句子。条件作用可能是错误的
[[“$2”!=“append”]| |[“$2”!=“replace”]]
总是正确的
[“$2”!=“append”]
如果[[$2==replace]]
或者如果$2
除了append
之外还有任何其他值,则该条件可能是错误的
[[“$2”!=“append”]| |[“$2”!=“replace”]]
总是正确的
[“$2”!=“append”]
如果[[$2==replace]]
或者$2
除了append
之外还有任何其他值,那么[[“$2”!=“append”]
总是正确的。我建议您将其放在括号内:
elif [[ $2 != 'append' && $2 != 'replace' ]]
或者可以使用extglob完全省略&&项:
shopt -s extglob
...
elif [[ $2 != @(append|replace) ]]
看来这正是你所期望的
请注意,您不必在括号内引用左侧。此外,我建议您将其放在括号内:
elif [[ $2 != 'append' && $2 != 'replace' ]]
或者可以使用extglob完全省略&&项:
shopt -s extglob
...
elif [[ $2 != @(append|replace) ]]
看来这正是你所期望的
请注意,您不必在
[[]]
括号内引用左侧。它应该是elif[[“$2”!=“append”| |“$2”!=“replace”]]
当$2
是append”
时返回的“[[“$2”!=“replace”]”是什么?对还是错?@khachik|
在括号内和括号外均有效。这不是问题所在。我正在寻找表达式来执行elif语句,如果$2既不是“append”也不是“replace”,那么它应该是elif[[“$2”!=“append”| |“$2”!=“replace”]
当$2
是“append”
时返回的“[[“$2”!=“replace”]]”是什么?对还是错?@khachik|
在括号内和括号外均有效。这不是问题所在。如果$2既不是“append”也不是“replace”Eureka,那么我正在寻找执行elif语句的表达式!真管用!谢谢-我想我什么都试过了,但&尤里卡!真管用!谢谢-我想我什么都试过了&&