Eu notei muitas perguntas, respostas e comentários expressando desdém por (e às vezes até medo de) escrever scripts em vez de frases simples. Então, eu gostaria de saber:
Quando e por que devo escrever um script independente em vez de um "one-liner"? Ou vice-versa?
Quais são os casos de uso e os prós e contras de ambos?
Algumas linguagens (por exemplo, awk ou perl) são mais adequadas para one-liners do que outras (por exemplo, python)? Se sim, por quê?
É apenas uma questão de preferência pessoal ou existem boas razões (ou seja, objetivas) para escrever uma ou outra em circunstâncias particulares? Quais são esses motivos?
Definições
one-liner
: qualquer sequência de comandos digitados ou colados diretamente em uma linha de comando do shell . Muitas vezes envolvendo oleodutos e / ou uso de linguagens comosed
,awk
,perl
, e / ou ferramentas comogrep
oucut
ousort
.É a execução direta na linha de comando que é a característica definidora - o comprimento e a formatação são irrelevantes. Um "one-liner" pode estar todo em uma linha ou pode ter várias linhas (por exemplo, sh para loop ou código awk ou sed incorporado, com feeds de linha e recuo para melhorar a legibilidade).
script
: qualquer sequência de comandos em qualquer idioma interpretado que é salvo em um arquivo e, em seguida, executado. Um script pode ser escrito inteiramente em um idioma ou pode ser um wrapper de script de shell em vários "one-liners" usando outros idiomas.
Eu tenho minha própria resposta (que postarei mais tarde), mas quero que isso se torne uma sessão de perguntas e respostas canônicas sobre o assunto, não apenas minha opinião pessoal.