Linux true-Befehl
Was ist der true-Befehl
trueEs ist einer der einfachsten Befehle in Linux/Unix-Systemen und hat nur eine Funktion:Immer Erfolg zurückgeben (Exit-Statuscode 0)。
Dieser Befehl scheint einfach zu sein, hat aber wichtige Verwendungen in der Shell-Skriptprogrammierung. Er entspricht einer "Nichts tun, aber immer erfolgreich sein"-Operation.
Grundlegende Syntax
Beispiele
Optionen
| Option | Beschreibung |
|---|---|
| --help | Hilfeinformationen anzeigen und beenden |
| --version | Versionsinformationen anzeigen und beenden |
Funktionsweise
trueDer Ausführungsprozess des Befehls ist sehr einfach:
- Wenn Sie eingeben
trueund die Eingabetaste drücken - Das System führt diesen Befehl aus
- Der Befehl wird sofort abgeschlossen, ohne etwas zu tun
- Gibt den Exit-Statuscode 0 zurück (was Erfolg anzeigt)
Praktische Anwendungsfälle
1. Als Bedingung für eine Endlosschleife
Beispiele
echo "Dies ist eine Endlosschleife"
sleep 1
done
In diesem Beispiel,while trueerzeugt eine Endlosschleife, weiltruegibt immer Erfolg (0) zurück, daher ist die Schleifenbedingung immer wahr.
2. Als eine standardmäßig erfolgreiche Operation
Beispiele
Diese Syntax bedeutet: wenncommandnicht ausgeführt werden kann, dann führetrue(ist immer erfolgreich), das stellt sicher, dass der gesamte Ausdruck immer einen erfolgreichen Status zurückgibt.
3. Als Platzhalter in Skripten
Beispiele
: # Nichts tun
else
true # Dies kann auch geschrieben werden, um nichts zu tun
fi
Hiertruedient als Ersatz für eine No-Op und macht die Codestruktur klarer.
Vergleich mit dem Befehl false
Linux hat auch einen entsprechendenfalseBefehl, der immer einen Fehler zurückgibt (Exit-Status-Code 1). Die folgende Tabelle zeigt die Unterschiede zwischen ihnen:
| Befehl | Funktion | Exit-Status-Code | Typische Verwendung |
|---|---|---|---|
| wahr | Tut nichts, gibt Erfolg zurück | 0 | Endlosschleifen, Fehler werden ignoriert |
| false | Tut nichts, gibt Fehler zurück | 1 | Testen der Fehlerbehandlung, bedingte Prüfungen |
Implementierungsdetails
In den meisten Linux-Systemen,trueist ein eingebauter Befehl (Shell-Builtin), aber normalerweise gibt es auch eine eigenständige Binärversion:
Beispiele
true ist ein Shell- Builtin
true ist /usr/bin/true
true ist /bin/true
Seine Implementierung ist extrem einfach und kann in C wie folgt dargestellt werden:
Beispiele
return 0;
}
Praktische Übungen
Versuchen Sie, es direkt im Terminal auszuführentrue, dann überprüfen Sie den Exit-Status-Code:
Beispiele
echo $? # Dies gibt 0 aus
Erstellen Sie ein Skript mit einer Endlosschleife, das alle 5 Sekunden die aktuelle Uhrzeit ausgibt:
Beispiele
while true; do
date
sleep 5
done
Testtruedas Verhalten in bedingten Anweisungen:
Beispiele
echo "Dies wird immer ausgeführt"
fi
FAQ
F: Tut der Befehl true wirklich nichts?A: Ja, er führt keine tatsächliche Operation aus, er gibt einfach einen erfolgreichen Exit-Status zurück.
F: Warum brauchen wir einen so scheinbar nutzlosen Befehl?A: In der Skriptprogrammierung brauchen wir manchmal einen Platzhalter oder eine Bedingung, die immer erfolgreich ist,trueund dieser Befehl erfüllt genau diesen Bedarf.
F: Was ist der Unterschied zwischen true und Doppelpunkt (:)?A: In den meisten Shells,:ist ebenfalls ein Befehl, der nichts tut, und sein Verhalten ist identischtruemit true. Allerdings,:ist ein reines Shell-Builtin, währendtruemöglicherweise eine eigenständige Binärversion hat.
Zusammenfassung
trueObwohl der Befehl einfach ist, ist er ein praktisches Werkzeug in der Shell-Skriptprogrammierung. Zu seinen Hauptmerkmalen gehören:
- Gibt immer Erfolg zurück (Exit-Status-Code 0)
- Führt keine tatsächliche Operation aus
- Wird häufig für Endlosschleifen, Fehlerbehandlung und Code-Platzhalter verwendet
Linux-Befehlsreferenz