我正在尝试将存储在字符串变量中的值与三个不同的可能值进行比较,如果它们中的任何一个都不匹配,则尝试使用逻辑运算符OR在单个if语句中引发错误。但是,即使存储在变量中的值与可能的值之一相同,每次我都会出错。请找到我尝试过的代码段。
if [[ "$TYPE" != "LOCAL" || "$TYPE" != "REMOTE" || "$TYPE" != "BOTH" ]]; then
echo -e "\n\tINCORRECT OR NULL ARGUMENTS PASSED. PLEASE VERIFY AND CORRECT THE USAGE MENTIONED AS BELOW: \n"
Usage
exit 1
fi
if [[ "$TYPE" != "LOCAL" ]] || [["$TYPE" != "REMOTE" ]] || [["$TYPE" != "BOTH" ]]; then
echo -e "\n\tINCORRECT OR NULL ARGUMENTS PASSED. PLEASE VERIFY AND CORRECT THE USAGE MENTIONED AS BELOW: \n"
Usage
exit 1
fi
答案 0 :(得分:0)
我认为您想改用AND(&&)。参见:
OR:
irb(main):002:0> true || true || false
=> true
irb(main):003:0> true || true || true
=> true
irb(main):004:0> false || false || false
=> false
AND:
irb(main):005:0> true && true && false
=> false
irb(main):006:0> true && true && true
=> true
irb(main):007:0> false && false && false
=> false
仅将红宝石用于演示