Viele Befehlszeilenprogramme können ihre Eingabe entweder über eine Pipe oder als Dateinamenargument verwenden. Bei langen Shell-Skripten ist das Starten der Kette mit einem cat
besser lesbar, insbesondere wenn der erste Befehl mehrzeilige Argumente benötigt.
Vergleichen Sie
sed s/bla/blaha/ data \
| grep blah \
| grep -n babla
und
cat data \
| sed s/bla/blaha/ \
| grep blah \
| grep -n babla
Ist die letztere Methode weniger effizient? Wenn ja, ist der Unterschied ausreichend, um zu berücksichtigen, ob das Skript beispielsweise einmal pro Sekunde ausgeführt wird? Der Unterschied in der Lesbarkeit ist nicht groß.
cat
. Aber ich denke , die größere Frage ist hier die Lesbarkeit des Codes , die häufig ist eine Priorität über die Leistung. Wenn schneller eigentlich schöner geschrieben werden kann , warum nicht? Das Hervorheben des Problems cat
führt in der Regel dazu, dass der Benutzer die Pipelines und Prozesse im Allgemeinen besser versteht. Die Mühe lohnt sich, damit sie das nächste Mal verständlichen Code schreiben.
cat
. Calebs Hinweis zur Verwendung von Funktionen und Umleitung löst dies ebenfalls.)