Welcher Befehl bedeutet "tue nichts" in einem bedingten in Bash?
Manchmal, wenn die Bedingungen machen, ich brauche den code um nichts zu tun, z.B., hier, ich will Bash nichts zu tun, wenn $a
ist größer als "10", " drucken "1", wenn $a
ist weniger als "5", sonst print "2":
if [ "$a" -ge 10 ]
then
elif [ "$a" -le 5 ]
then
echo "1"
else
echo "2"
fi
Dieser einen Fehler macht obwohl. Gibt es einen Befehl, der nichts tut und auch nicht langsam nach unten mein script?
InformationsquelleAutor der Frage Village | 2013-07-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
No-op command in der shell
:
(Doppelpunkt).Aus der bash-manual:
InformationsquelleAutor der Antwort Barmar
Können Sie wahrscheinlich nur die
true
Befehl:Alternative, in Ihrem Beispiel-Fall (aber nicht notwendigerweise überall) ist neu-bestellen Sie Ihre if/else:
InformationsquelleAutor der Antwort Flimzy
Ich bin zwar nicht der Beantwortung der ursprünglichen Frage bezüglich des no-op Befehl, viele (wenn nicht die meisten) Probleme, wenn man denken kann "in dieser Branche habe ich nichts zu tun" kann umgangen werden, indem einfach Umstrukturierung der Logik, so dass dieser Zweig nicht auftreten.
Ich versuche zu geben, in der Regel von der Verwendung der OPs-Beispiel
wir haben zu vermeiden, eine Filiale, wo
$a
bekommt mehr als 10, so$a < 10
als eine Allgemeine Bedingung angewendet werden kann, um alle anderen, folgenden Zustand.Im Allgemeinen, wenn Sie sagen nichts tun, wenn X, dann formuliere es als vermeiden, eine Filiale, wo X. In der Regel können Sie die Vermeidung passieren, dass Sie einfach zu negieren X und die Anwendung, um alle anderen Bedingungen.
Also die OPs-Beispiel für die Regel angewendet werden kann, neu strukturiert:
Nur eine variation der oben genannten, umschließt alles, was in der
$a < 10
Zustand:(Für dieses spezielle Beispiel @Flimzys Umstrukturierung ist sicherlich besser, aber ich wollte geben Sie eine Allgemeine Regel für alle Menschen auf der Suche, wie nichts zu tun.)
InformationsquelleAutor der Antwort Basti M