Zauważyłem wiele pytań, odpowiedzi i komentarzy wyrażających pogardę dla (a czasem nawet strachu) pisania skryptów zamiast jednowierszowych. Więc chciałbym wiedzieć:
Kiedy i dlaczego powinienem pisać samodzielny skrypt zamiast „one-liner”? Lub odwrotnie?
Jakie są przypadki użycia oraz zalety i wady obu?
Czy niektóre języki (np. Awk lub perl) lepiej pasują do jednowierszowych niż inne (np. Python)? Jeśli tak, dlaczego?
Czy jest to tylko kwestia osobistych preferencji lub czy istnieją dobre (tj. Obiektywne) powody, aby napisać jedno lub drugie w szczególnych okolicznościach? Jakie są te powody?
Definicje
one-liner
: dowolna sekwencja poleceń wpisana lub wklejona bezpośrednio w linii poleceń powłoki . Często z udziałem rurociągi i / lub korzystanie z języków takich jaksed
,awk
,perl
i / lub narzędzi jakgrep
albocut
albosort
.Definiująca jest bezpośrednia realizacja w wierszu poleceń - długość i formatowanie są nieistotne. „Jednowierszowy” może znajdować się w jednym wierszu lub może mieć wiele wierszy (np. Sh dla pętli lub osadzony kod awk lub sed, z przejściami linii i wcięciami w celu poprawy czytelności).
script
: dowolna sekwencja poleceń w dowolnym interpretowanym języku (językach), które są zapisywane w pliku , a następnie wykonywane. Skrypt może być napisany w całości w jednym języku lub może być opakowaniem skryptu powłoki wokół wielu „jednowierszowych” przy użyciu innych języków.
Mam własną odpowiedź (którą opublikuję później), ale chcę, aby stała się ona kanonicznym pytaniem i odpowiedzią na ten temat, a nie tylko moją osobistą opinią.