Ho notato molte domande, risposte e commenti che esprimono disprezzo per (e talvolta persino paura di) scrivere script invece di una riga. Quindi, vorrei sapere:
Quando e perché dovrei scrivere una sceneggiatura autonoma piuttosto che un "one-liner"? O vice versa?
Quali sono i casi d'uso, i pro ei contro di entrambi?
Alcune lingue (ad es. Awk o perl) sono più adatte ad una riga rispetto ad altre (ad esempio python)? Se è così, perché?
È solo una questione di preferenza personale o ci sono buone ragioni (cioè oggettive) per scrivere l'una o l'altra in circostanze particolari? Quali sono questi motivi?
definizioni
one-liner
: qualsiasi sequenza di comandi digitata o incollata direttamente in una riga di comando della shell . Oleodotti che spesso coinvolgono e / o l'uso di linguaggi comesed
,awk
,perl
, e / o strumenti comegrep
ocut
osort
.È l'esecuzione diretta sulla riga di comando che è la caratteristica che definisce - la lunghezza e la formattazione sono irrilevanti. Un "one-liner" può essere tutto su una riga, oppure può avere più righe (ad esempio sh for loop, o codice awk o sed incorporato, con avanzamenti di riga e rientro per migliorare la leggibilità).
script
: qualsiasi sequenza di comandi in qualsiasi lingua interpretata che viene salvata in un file e quindi eseguita. Uno script può essere scritto interamente in una lingua, oppure può essere un wrapper shell-script attorno a più "one-liners" usando altre lingue.
Ho la mia risposta (che posterò più avanti), ma voglio che diventi una domanda e risposta canonica sull'argomento, non solo la mia opinione personale.