Ich möchte die if else
-Anweisung in sh
scripting
Also schrieb ich das folgende, um herauszufinden, ob JAVA_HOME in der Umgebung eingestellt ist oder nicht , ich schrieb das folgende Skript
%Vor% Dies ist meine Ausgabe in env
aber ich bekomme unter Ausgabe
%Vor% Sie stoßen auf eine dumme Begrenzung der Art, wie sh
Argumente erweitert. Zeile 3 Ihres Skripts wird erweitert zu:
Welche sh
kann nicht herausfinden, was zu tun ist. Versuchen Sie diesen hässlichen Hack für die Größe:
Beide Argumente müssen nicht leer sein, also werfen wir einfach ein x
in beide und sehen was passiert.
Alternativ gibt es einen separaten Operator zum Testen, wenn eine Zeichenfolge nicht leer ist:
%Vor% ( -z
testet, ob die folgende Zeichenfolge leer ist.)
Beachten Sie, dass Sie, wenn Sie feststellen möchten, ob eine Variable gesetzt ist, wahrscheinlich weder if / else noch test ([) verwenden möchten. Es ist eher typisch für Dinge wie:
%Vor%oder
%Vor%oder
%Vor%