Warum verwenden GNU-Tools nicht übereinstimmende „und“ zum Zitieren von Fehlern?

Warum verwenden GNU-Tools nicht übereinstimmende „und“ zum Zitieren von Fehlern?

GNU-Tools geben häufig Fehler- und Warnmeldungen aus, bei denen Teile der Zeile (z. B. Dateinamen, Syntaxfehler, ungültige Daten usw.) in nicht übereinstimmenden Anführungszeichen stehen: ` und '

zB Von den GNU coreutilsFAQ:

$ date -d "2006-04-02 02:30:00"
date: invalid date `2006-04-02 02:30:00'

Und

rm: cannot remove `backup.tar': Value too large for defined data

Warum machen sie das? Bringt das Vorteile? Was ist die Geschichte dahinter?

Antwort1

Bei alten X-Schriftarten sah „..“ symmetrisch aus wie „..“

Auch bei „..“ generiert Latex korrekte linke und rechte einfache Anführungszeichen wie „..“

Also `..' war ein Hack und im Jahr 2012 coreutilsgeändertzum Shellen, als würde man „..“ zitieren.

Allerdings handelte es sich nicht um die vollständige Shell-Syntax, und es wurde eine beschädigte Ausgabe generiert, wenn eingebettete „\r“-Zeichen usw. vorhanden waren. Inkonsistenterweise wurden in manchen Fällen auch keine Anführungszeichen verwendet und manchmal wurden Unicode-Anführungszeichen „..“ verwendet (die Anführungszeichen verwenden, wie für das Gebietsschema definiert, und das Escapen dieser Steuerzeichen ermöglichen).

Eine ganz aktuelle (2015)Patch Satzwurde in Coreutils eingeführt, um dies konsistenter zu machen, indem alle Dateinamenausgaben im Shell-kompatiblen Format in Anführungszeichen gesetzt werden, wodurch auch Steuerzeichen entsprechend maskiert werden und das Kopieren und Einfügen in andere Befehle einfacher wird. Andere Elemente in der Diagnose verwenden wie oben erwähnt „vollständige Unicode“-Anführungszeichen.

verwandte Informationen