# bash: oder im if statement

## morpheus2051

Hallo!

Ich möchte ein Bash-Script schreiben, in dem ein String genau zwei Werte annehmen kann. Hat der String einen anderen Wert als den einen oder anderen Wert soll das Script beendet werden. 

nochmal in Pseudocode: 

wenn variable ungleich wert1 oder variable ungleich wert2; dann

verlasse Script

Dazu habe ich folgenden Code geschrieben:

```

if  [ "$VAR" != "wert1" -o  "$VAR" != "wert2" ]; then

    exit 1 

fi

```

Das Problem ist das Script beendet sich egal welchen Wert VAR annimmt. 

Ich weiß nicht wo das Problem liegt. 

Danke für Eure Hilfe!

Gruß

Morpheus

P.S.: Ich lerne noch. Jeder Code, der mein Problem löst, ist mir willkommen.

----------

## SinoTech

 *morpheus2051 wrote:*   

> 
> 
> [...]
> 
> nochmal in Pseudocode:
> ...

 

Du hast einen Denkfehler. Denn wenn variable wert1 hat, ist sie ungleich "wert2" und damit geht dein Code in die If-Anweisung rein und beendet das script (in der Oder-Anweisung muss ja lediglich einer der beiden Ausdrück true ergeben). Richtig wäre das Script zu beenden wenn variable ungleich "wert1" UND auch gleichzeitig ungleich "wert2" ist. Also:

```

if  [ "$VAR" != "wert1" -a  "$VAR" != "wert2" ]; then

    exit 1

fi 

```

Cheers,

Sino

----------

## morpheus2051

Da habe ich in der Tat Mist gebaut. Manchmal steht man einfach auf dem Schlauch...

Vielen Dank für die Korrektur!

Gruß 

morpheus

----------

## SinoTech

 *morpheus2051 wrote:*   

> Da habe ich in der Tat Mist gebaut. Manchmal steht man einfach auf dem Schlauch...
> 
> Vielen Dank für die Korrektur!
> 
> Gruß 
> ...

 

Immer wieder gern.

----------

