Dies ist ein Ableger dieses Kommentars in Ausgabe Nr. 4206 von @0rax.
Commit d383e3b hat read
so geändert, dass die Variable immer definiert wird, auch wenn keine Daten gelesen wurden. Es wird davon ausgegangen, dass mindestens ein Variablenname angegeben wurde. Aber es ist derzeit legal, read
ohne Variablennamen aufzurufen. Was keinen Sinn macht. Der einzige Grund, der in Bash und ähnlichen Shells Sinn macht, ist, dass sie standardmäßig var name REPLY
verwenden. Fish tut das nicht und sollte daher den Aufruf read
ohne mindestens einen Variablennamen nicht zulassen. Selbst wenn der Benutzer einfach eine Eingabezeile verwerfen möchte, sollte er einen Variablennamen angeben müssen, in dem die Textzeile gespeichert werden soll.
Die Frage ist, ob wir dies für die Version 2.7.0 ändern sollten – die letzte Version in der 2.x-Reihe. Wir sollten dies unbedingt für die Version 3.0.0 ändern.
Ich denke, es soll sich so verhalten wie bei 2.7 und bei 3.0 zu einem Fehler.
Kann bestätigen, dass 71af1a9 das in https://github.com/fish-shell/fish-shell/issues/4206 beschriebene gewünschte Verhalten wiederherstellt.
Danke für die schnelle Lösung!
Zusammengeführt in den Hauptzweig zur Aufnahme in unsere Fish 3.0-Version.
Hilfreichster Kommentar
Ich denke, es soll sich so verhalten wie bei 2.7 und bei 3.0 zu einem Fehler.