Ich habe eine Menge Fragen, Antworten und Kommentare bemerkt, die meine Verachtung zum Ausdruck bringen (und manchmal sogar Angst davor haben), Skripte anstelle von Einzeilern zu schreiben. Also, ich würde gerne wissen:
Wann und warum sollte ich ein eigenständiges Skript schreiben und nicht einen "Einzeiler"? Oder umgekehrt?
Was sind die Anwendungsfälle und Vor- und Nachteile von beiden?
Sind einige Sprachen (zB awk oder perl) besser für Einzeiler geeignet als andere (zB Python)? Wenn ja warum?
Ist es nur eine Frage der persönlichen Präferenz oder gibt es gute (dh objektive) Gründe, unter bestimmten Umständen das eine oder andere zu schreiben? Was sind diese Gründe?
Definitionen
one-liner
: Eine beliebige Folge von Befehlen, die direkt in eine Shell-Befehlszeile eingegeben oder eingefügt werden . Oft die Rohrleitungen und / oder die Verwendung von Sprachen wiesed
,awk
,perl
und / oder Tools wiegrep
odercut
odersort
.Es ist die direkte Ausführung auf der Kommandozeile, die das bestimmende Merkmal ist - die Länge und Formatierung ist irrelevant. Ein "Einzeiler" kann sich alle in einer Zeile befinden oder mehrere Zeilen umfassen (z. B. sh for loop oder eingebetteter awk- oder sed-Code mit Zeilenvorschub und Einzug zur Verbesserung der Lesbarkeit).
script
: Eine beliebige Folge von Befehlen in einer oder mehreren interpretierten Sprachen, die in einer Datei gespeichert und dann ausgeführt werden. Ein Skript kann vollständig in einer Sprache geschrieben sein, oder es kann ein Shell-Skript-Wrapper sein, der mehrere "Einzeiler" in anderen Sprachen verwendet.
Ich habe meine eigene Antwort (die ich später veröffentlichen werde), aber ich möchte, dass dies eine kanonische Frage und Antwort zu diesem Thema ist, nicht nur meine persönliche Meinung.