$ vim novo.sh
Esqueleto de script # grátis, sem cadastro
Todo script começa com cinco linhas e termina com quinhentas, e as cinco primeiras decidem se as outras vão dar trabalho. Aqui se marca o que o script precisa e sai um bash comentado em português, que roda já na primeira vez. O trabalho de verdade continua por conta de quem escreve; a parte chata, não.
O script é montado neste navegador; nada vai para servidor nenhum. Todas as combinações de opções foram geradas e postas para rodar, até no bash 3.2 que ainda mora no macOS.
$ help set
Por que cada peça está ali
set -euo pipefail: sem ele, o bash segue em frente depois de um erro, como quem não percebeu que tropeçou. Com ele, para no primeiro tropeço, reclama de variável que não existe e não deixa um pipe esconder a falha do meio.- Mensagens na saída de erro: a saída normal fica para os dados, e assim o script pode entrar num pipe sem sujar o resultado com "processando...".
getopts: o jeito do próprio bash de ler-v,-ne-o arquivo, inclusive juntos, como-vn.mktempetrap: o rascunho tem nome que ninguém adivinha e some na saída, seja por fim normal, por erro ou por Ctrl+C. Arquivo temporário esquecido é como visita que não vai embora.flock: no cron, quando a execução das 3h ainda não terminou e a das 4h chega, a segunda desiste em vez de atropelar a primeira. Para marcar o horário, o montador de crontab ajuda.
O esqueleto é a parte que se repete. O que vai no meio dele é o que muda de script para script, e é disso que os cursos tratam.
$ tee whatsapp telegram linkedin < esqueleto.html
Passe adiante # o tee manda a mesma saída para vários lugares
Ferramenta boa é como comando bem escrito: vale mais quando circula. Mande para quem ainda começa todo script do zero, sem set -e e sem ajuda. E o portal vai junto: tem mais de onde esta saiu.