test Bedingen zusammenfassen

F

felixka

Jungspund
Hi,
ich hab ein bash skript mit mehreren if Abfragen:

Code:
if [ $ID = 10 ]; then
/var/job_1
fi
 
if [ $ID = 20 ]; then
/var/job_1
fi

if [ $ID = 30 ]; then
/var/job_1
fi

Frage: Wie kann ich die drei if Abfragen in einer if Abfrage zusammenfassen?
Code:
if [ $ID = 10.?. 20.?. 30 ]; then
/var/job_1
fi
 
Ich glaube das geht so:
Code:
if [ $ID = 10 || $ID = 20 || $ID = 30 ]; then
Bin mir aber nicht sicher, weil ich keine ahnung von Shellscripten hab...

|| steht für "oder"
Das ganze geht auch mit und. Dann musste && statt || nehmen
 
Das geht nicht:
Code:
z-shell@debian:~$ echo $a
5
z-shell@debian:~$ if [ $a = "5" || $a = "8" ]; then echo "jop"; else echo "nö";fi
bash: [: missing `]'
bash: 5: command not found
Mit -a (and) oder -o (or) gehts:
Code:
z-shell@debian:~$ if [ $a = "5" -a $a = "8" ]; then echo "jop"; else echo "nö";fi
nö
z-shell@debian:~$ if [ $a = "5" -o $a = "8" ]; then echo "jop"; else echo "nö";fi
jop
 
Danke, super...Das von z-shell hat geklappt.
Wieder was gelernt.

Gruss - felix
 
Für solche Mehrfach Fallunterscheidungen verwende besser gleich case.
Das ist eleganter und performanter und übersichtlicher.
;)

Gruß Wolfgang
 
...leichter zu warten und modular erweiterbar (aber im Prinzip hat das Wolfi schon gesagt) :D
 

Ähnliche Themen

Rückgabe eines Befehls

Crontab und Scripts - Problem

Shell Skript beschleunigen

HandbrakeCLI Shell Skript

Keine grafische Oberfläche (Debian Installation)

Zurück
Oben