He notado muchas preguntas, respuestas y comentarios que expresan desdén por (y a veces incluso miedo) de escribir guiones en lugar de frases ingeniosas. Entonces, me gustaría saber:
¿Cuándo y por qué debería escribir un guión independiente en lugar de un "one-liner"? ¿O viceversa?
¿Cuáles son los casos de uso y las ventajas y desventajas de ambos?
¿Algunos idiomas (p. Ej., Awk o perl) son más adecuados para las frases simples que otros (p. Ej., Python)? Si es así, ¿por qué?
¿Es solo una cuestión de preferencia personal o hay buenas razones (es decir, objetivas) para escribir una u otra en circunstancias particulares? ¿Cuáles son esas razones?
Definiciones
one-liner
: cualquier secuencia de comandos escritos o pegados directamente en una línea de comandos de shell . Tuberías menudo implican y / o el uso de lenguajes tales comosed
,awk
,perl
, y / o herramientas comogrep
ocut
osort
.Es la ejecución directa en la línea de comandos la característica definitoria: la longitud y el formato son irrelevantes. Un "one-liner" puede estar todo en una línea, o puede tener múltiples líneas (p. Ej. Sh for loop, o código awk o sed incrustado, con avances de línea e indentación para mejorar la legibilidad).
script
: cualquier secuencia de comandos en cualquier idioma interpretado que se guarde en un archivo y luego se ejecute. Un script puede estar escrito completamente en un idioma, o puede ser un contenedor de script de shell alrededor de varios "one-liners" usando otros idiomas.
Tengo mi propia respuesta (que publicaré más adelante), pero quiero que esto se convierta en un Q&A canónico sobre el tema, no solo mi opinión personal.