$ portaldoshell

carreira · 9 min de leitura

A verdade sobre Shell Script que você descobre tarde demais

Quem resolve manualmente só está treinando para repetir o mesmo erro com mais fluência.

$ whoami
Julio Cezar Neves

Um pinguim de óculos, com a mão no rosto e uma caneca na outra, olha um caderno aberto numa mesa de data center. Ao lado, um notebook, cabos de rede emaranhados, bolas de papel amassado e um biscoito mordido. Uma chaleira presa a uma engenhoca de fios despeja água num coador. Ao fundo, entre os racks, outro pinguim observa.

Shell Script é a habilidade que o mercado cobra sem avisar, e quem adia o aprendizado paga a conta com juros na pior semana possível. Escrevo isso no dia em que encerro uma resistência de três anos. Segurei o preço da Formação Completa de Shell Script, o nosso Shell Completão, enquanto o resto do mundo subia, e fiz isso por teimosia técnica com uma pitada de fé. Eu acreditava que os custos iam se comportar com o tempo. Os custos seguiram a própria natureza e subiram junto com todo o resto.

O servidor encareceu e a energia acompanhou com a lealdade de quem conhece o caminho. O escambau subiu também, como costuma subir quando ninguém presta atenção nas entrelinhas do orçamento. Chega um ponto em que manter o preço vira uma planilha que se recusa a fechar, por mais que as colunas troquem de lugar. Esse ponto chegou com a pontualidade que a realidade reserva para cobranças. Demorei um pouco para aceitar o óbvio, habilidade muito humana e totalmente inútil em produção.

A turma que abro agora é a última com o preço atual. Ela foge do calendário habitual e existe para quem pedia mais um sinal antes de se mexer. O sinal está aqui, com faixa e holofote, e quem espera uma condição melhor está olhando para ela neste exato parágrafo. Esperar mais costuma virar uma desculpa bem organizada, e Shell Script tem pouca paciência com script que nunca roda.

Para quem chegou agora, vale explicar o que está em jogo. Imagine assumir um servidor Linux numa segunda de manhã e receber um log com algumas centenas de milhares de linhas. Alguém precisa dos erros contados por tipo e separados por serviço, e precisa disso para a reunião que começa daqui a quarenta minutos. Quem sabe Shell resolve em dois minutos e segue o dia em paz. Quem esperava o momento certo para aprender passa duas horas no caminho errado, repetindo etapas e torcendo para ninguém perguntar o prazo.

A diferença entre os dois cenários mora em poucas linhas. Um grep separa o que interessa, e um sort seguido de uniq -c faz a contagem que a planilha levaria a tarde inteira para fazer. Quem conhece as ferramentas enxerga o pipeline antes de digitar o primeiro caractere. Quem desconhece abre o arquivo no editor e começa a rolar a tela com esperança, um método de trabalho amplamente praticado e com resultados à altura da sua documentação.

A urgência sempre passa, e o aprendizado adiado volta mais tarde com prazo menor e plateia maior. Quem resolve manualmente só está treinando para repetir o mesmo erro com mais fluência. O processo ganha aparência elegante, porque a sequência de passos já está decorada, e a solução continua frágil, porque depende da sua presença toda vez que o problema reaparece. Parecer que sabe e saber de fato ficam a uma boa distância um do outro, e a produção costuma medir essa distância na hora mais inconveniente.

A Formação cobre o que aparece no trabalho de quem usa Linux de verdade, longe do ambiente controlado do tutorial. A base começa na execução de comandos e na manipulação de arquivos. O grep e o sed entram cedo, junto com variáveis e redirecionamentos. Laços e condicionais dão forma à lógica, e as expressões regulares e as funções completam o repertório de quem escreve script para durar. São cinco semanas de aulas ao vivo, com gravação e acesso vitalício ao material.

Ensino o que uso há décadas em ambiente de produção, com os problemas que o sistema inventa justamente no dia que já estava cheio. A teoria que entra no curso tem função, e o exemplo de aula precisa sobreviver ao primeiro servidor fora do roteiro. Conteúdo simplificado demais parece generoso na hora e cobra caro depois, quando o ambiente real aparece sem manual. Prefiro preparar cada pessoa para a frustração certa, que é a do aprendizado, e poupá-la da outra, que chega em produção com plateia.

A estrutura é progressiva e dispensa condescendência. A base é sólida porque precisa ser, e pular direto para o avançado produz automações que funcionam por sorte e param por azar. Já vi isso acontecer em produção mais vezes do que gostaria de contar, e a explicação para quem esperava o resultado sempre sai feia. O ritmo das semanas acompanha a dificuldade sem pressa artificial, porque o ambiente vai testando quem estuda à medida que o conteúdo avança.

As aulas ao vivo valem pela pergunta feita na hora. A dúvida respondida no momento em que nasce evita que ela se junte a outras suposições erradas e forme uma visão de mundo sobre Shell que serve para tudo, exceto para resolver problema. Isso parece óbvio no papel e ganha outra cor às dezoito horas, diante de um loop que ignora linhas em branco por critérios próprios e de um log que se recusa a colaborar. Uma resposta dada na hora economiza uma tarde inteira de suposições.

Esse loop, aliás, costuma ter uma explicação prosaica. Quase sempre a culpa é de um for percorrendo a saída de um cat, que quebra o texto em palavras e descarta as linhas vazias pelo caminho. Um while com read resolve, de preferência com a opção -r, que preserva as barras invertidas. O detalhe leva um minuto para ser explicado ao vivo e um dia inteiro para ser descoberto por conta própria, com a ajuda de fóruns que respondem a uma pergunta parecida com a sua e diferente o bastante para atrapalhar.

Repito uma frase há muitos anos, e cada ano a confirma: quem domina Shell jamais fica sem emprego. Soa como conversa de vendedor, e é apenas a observação de quem viu o mercado mudar de direção várias vezes enquanto o Shell seguia relevante, sem precisar de relançamento com nome novo. O Shell está em todo lugar onde há Linux, e o Linux está em todo lugar onde a coisa funciona de verdade. Isso vale do contêiner recém-criado ao sistema legado que ninguém quer tocar e todo mundo usa às quinze horas de uma sexta-feira.

Habilidade que atravessa décadas e linguagens costuma ter nome curto, e o Shell é um desses nomes. Essa estabilidade passa despercebida no currículo e aparece inteira quando o ambiente para de cooperar e alguém precisa saber o que está fazendo. Problema técnico chega sem aviso e já aplicando prova. A pergunta que sobra é direta: houve treino para esse momento, ou a espera por um contexto mais favorável continua em andamento?

Aprender Shell muda o jeito de olhar para qualquer problema que envolva dados e tarefas repetitivas. Todo problema passa a ser um fluxo que entra de um lado e sai transformado do outro, e a improvisação perde espaço quando a pressão chega, porque o modelo de resolução já existe antes da urgência. Cada comando tem consequência real, e o terminal raramente oferece um desfazer. Quem pensa assim ganha tempo de forma consistente, e tempo em produção tem um custo que gerente nenhum precisa calcular duas vezes.

A comunidade pesa bastante nessa equação. Quem passa pelas cinco semanas entra num grupo de gente que trabalha com Linux todo dia e troca soluções testadas em ambiente real. Esse valor fica fora da ementa e aparece todo mês, na forma de uma resposta de alguém que caiu na mesma armadilha dois sprints atrás. O acesso vitalício às gravações cobre a dúvida que surge no meio da entrega, que é exatamente quando as dúvidas gostam de surgir, com o prazo apertado e o erro aberto na tela.

O grupo funciona também como radar do mercado técnico. Quando uma ferramenta nova promete aposentar o Shell, a comunidade acompanha a promessa chegar e partir, enquanto os scripts antigos seguem rodando no mesmo cron. Acompanho esse filme há tempo suficiente para reconhecer o final pela abertura, e a bilheteria do Shell continua estável há meio século. Os anúncios de aposentadoria, por sua vez, já formam um gênero próprio, com estreia anual garantida.

Muita gente volta depois do curso para contar que começou a automatizar tarefas feitas à mão havia anos, sempre com a mesma pergunta sobre por que demorou tanto. Uns chegam para melhorar o que já fazem, e outros acabaram de herdar um ambiente Linux e descobriram que o desconforto com o terminal custa caro toda semana. As motivações variam, e o resultado se repete com uma regularidade quase científica. Onde havia improviso aparece clareza técnica, e onde havia repetição aparece um script.

Quem pensa em decidir depois precisa saber que o depois é o lugar onde as boas intenções vão morrer com dignidade e sem data de retorno. A turma extra existe para quem precisava de um momento de clareza, e esse momento chegou. O reajuste vem logo em seguida, indiferente a quantas pessoas ainda estejam avaliando com todo o cuidado do mundo. Cuidado excessivo na hora de aprender raramente protege alguém de algo que mereça proteção.

A ementa completa está neste PDF, com o conteúdo de cada semana, e a página do curso reúne o formato e os bônus. Dúvidas podem vir direto para mim, porque respondo pessoalmente. Também gosto de saber o que trouxe cada pessoa até aqui, já que toda trajetória tem uma história, e algumas renderiam um script muito bem comentado.

PS: Conte nos comentários qual tarefa você ainda faz à mão e que um script já deveria ter assumido faz tempo. Tenho interesse genuíno na lista, e desconfio que ela vai ficar longa. Um bom script já teria avaliado a condicional e executado a ação sem hesitar. Às vezes a automação nasce da necessidade, e às vezes nasce da preguiça de pensar duas vezes. As duas funcionam, e a segunda funciona com uma frequência que seria constrangedora se alguém documentasse com timestamp.

PS2: A turma extra abre agora com o preço atual, e a próxima janela com esse valor ainda está sem data. Decidir leva menos tempo que filtrar à mão aquele log da segunda-feira. Para garantir a vaga, preencha o formulário de interesse e aguarde meu contato.

$ cat comentarios.log

lendo o log…

$ ./comentar.sh --artigo a-verdade-sobre-shell-script

* obrigatório. Todo comentário passa pelo root antes de entrar no log, e o root daqui é humano.