Wie man eine logische ODER-Verknüpfung in Shell-Skripten durchführt
Ich versuche, eine einfache Bedingungsprüfung durchzuführen, aber es scheint nicht zu funktionieren.
Wenn "$#" gleich "0" oder größer als "1" ist, dann sag "Hallo".
Ich habe die folgende Syntax ausprobiert, ohne Erfolg:
if [ "$#" == 0 -o "$#" > 1 ] ; then
echo "hello"
fi
if [ "$#" == 0 ] || [ "$#" > 1 ] ; then
echo "hello"
fi
554
3
Das sollte funktionieren:
Ich bin mir nicht sicher, ob dies in anderen Shells anders ist, aber wenn Sie verwenden möchten, müssen Sie sie in doppelte Klammern setzen, wie hier:
Dieser Code funktioniert bei mir:
Ich glaube, sh unterstützt "==" nicht. Verwenden Sie "=", um Strings zu vergleichen und -eq, um Ints zu vergleichen.
für weitere Details.
haben Sie so etwas schon einmal ausprobiert: