Dies ist beabsichtigt. Wenn Sie sich die diff
Manual-Seite ansehen, sehen Sie folgende Aussage:
Der Beendigungsstatus ist 0, wenn die Eingänge gleich sind, 1, wenn unterschiedlich, 2, wenn es Probleme gibt.
Exit-Status 0
bedeutet true
für die Shell, daher wird "Same" angezeigt. In beiden anderen möglichen Status wird "Anders" angezeigt, wenn nichts anderes als Null ist false
.
Das if
Verhalten ist in der Shell-Manpage beschrieben, hier zum Beispiel bash
:
if list; then list; [ elif list; then list; ] ... [ else list; ] fi
Die if-Liste wird ausgeführt. Wenn der Beendigungsstatus null ist, lautet die Liste dann hingerichtet. Andernfalls wird jede Elif-Liste nacheinander ausgeführt, und falls vorhanden, wird sie beendet Status ist Null, die entsprechende Liste wird ausgeführt und der Befehl vervollständigt. Andernfalls wird die else-Liste ausgeführt, sofern vorhanden. Der Ausgangsstatus ist der Beendigungsstatus des zuletzt ausgeführten Befehls oder Null, wenn keine Bedingung vorliegt getestet wahr.