Ich versuche, eine einfache Bedingungsprüfung durchzuführen, aber es scheint nicht zu funktionieren.
Si $#
ist gleich 0
oder größer ist als 1
dann sagen Sie hallo.
Ich habe die folgende Syntax ausprobiert, ohne Erfolg:
if [ "$#" == 0 -o "$#" > 1 ] ; then
echo "hello"
fi
if [ "$#" == 0 ] || [ "$#" > 1 ] ; then
echo "hello"
fi
0 Stimmen
Für mich funktionieren beide. Haben Sie eine Shell in der Datei . Linie?
1 Stimmen
@Jason Ich habe die Shebang-Zeile tatsächlich vergessen, aber ich habe es gerade damit getestet und es hat nicht funktioniert.
27 Stimmen
>
ist die Umleitung der Ausgabe in sh/bash. Jetzt haben Sie wahrscheinlich eine Datei namens1
.0 Stimmen
Informationen zu Bash-Vergleichen finden Sie in meinen Antworten auf frühere Fragen aquí y aquí . Für weitere Informationen zu Klammern, doppelten Klammern und doppelten Klammern siehe meine Antwort aquí .
0 Stimmen
Es funktioniert nicht, weil Sie den Vergleich falsch eingegeben haben: verwenden Sie "$#" == "0" oder $# -eq 0