BASH逻辑问题;使用 IF 和 OR 测试一个字符串变量很困难

BASH逻辑问题;使用 IF 和 OR 测试一个字符串变量很困难

var1我有一个在 BASH 中使用的字符串。可以是三个值

var1=on

var1=off

或者var1可以等于任何不等于onoff

我希望在 BASH 中构建一个 if 语句来测试$var1其内容,如下所示;

如果$var1字符串等于“ on”或“ off”,则退出 if 语句。如果$var1等于其他任何东西继续...

我尝试了很多可能性,包括 -ne、!=、||和 -o 和我完全混乱。

下面我粘贴了我正在使用的内容、我使用它得到的内容以及我想要的内容。

var1=on

if [[ ${var1} != 'on' || $var1 != 'off' ]]; then echo var1 is NOT equal to \"on\" or \"off\". Var1 is equal to $var1 else echo var1 IS equal to \"on\". Var1 is equal to $var1 fi

这会产生;

var1 is NOT equal to "on" or "off". Var1 is equal to on

我想要的是;

var1 IS equal to "on". Var1 is equal to on

答案1

#!/bin/bash
read -p "introduce a value: " var1

if [[ ${var1} != 'on' && ${var1} != 'off' ]];
then
        exit
else
        echo "CORRECT"
fi

相关内容