BASH 논리 문제; IF와 OR을 사용하는 문자열 변수는 어렵습니다.

BASH 논리 문제; IF와 OR을 사용하는 문자열 변수는 어렵습니다.

var1BASH에서 사용하는 문자열이 있습니다. 세 가지 값이 될 수 있습니다.

var1=on

var1=off

또는 var1같지 않거나 같지 않은 것과 같을 수 있습니다 on.off

$var1아래와 같이 내용을 테스트하기 위해 BASH에서 if 문을 구성하고 싶습니다 .

$var1문자열이 " on" 또는 " " 이면 offif 문을 종료합니다. $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

관련 정보