Você devia aprender shell-script

Se você é programador, você devia aprender shell-script. Ou pelo menos, algo parecido.

Nem que seja apenas o básico para se virar: criar o arquivo e deixar executável, ler e escrever variáveis, redirecionar entrada e saída, encadear comandos, grep e cut basicão.

Você pode ainda não saber que precisa da habilidade de fazer shell-scripts, e isso é um problema. Tem sido difícil para mim comunicar a outros programadores que conheço como a vida deles seria mais fácil se aprendessem um mínimo de shell-script. (Enquanto isso, meu irmão sargento do Exército, que nem é programador profissional, usa o shell regularmente para resolver pepinos impossíveis no trabalho dele. That's a win!)

Os motivos que as pessoas dão para deixar de aprender shell-script são mais ou menos os mesmos: “não tenho tempo, tem outras coisas me ocupando no momento”, “isso não é da linha de comando? ninguém mais usa a linha de comando, os anos 80 já se foram há muito tempo” e “por que você se importa que eu aprenda essa linguagem velha e tosca?”.

Estou aqui para dizer que nenhum desses motivos é válido, vamos destrinchá-los um por um.

Motivo 1: não tenho tempo, tem outras coisas me ocupando no momento

É claro que você não tem tempo e está ocupado, você ainda não sabe shell-script! Se soubesse, teria resolvido uma penca de problemas antes do tempo e estaria navegando no reddit. :D

Brincadeiras à parte: você acha o tempo pra estudar. Invista um pouco de tempo agora, pra colher depois. Colhe em tempo e tranquilidade -- o que antes você fazia manualmente, você agora só checa o resultado.

Motivo 2: linha de comando é coisa do passado

Bééééé, not really! Interfaces de linha de comando continuam a todo o vapor. Mesmo os cool kids brincando com as últimas encarnações de Javascript não param de criar uma porção de ferramentas para a linha de comando, uma mais interessante que a outra.

A verdade é que as interfaces de linha de comando, apesar de não serem muito intuitivas para um usuário leigo, são muito boas para nós, programadores. Ou para qualquer pessoa que queira poder resolver os próprios problemas computacionais sem depender de alguém haver encontrado o mesmo problema antes e ser generoso a ponto de resolvê-lo e compartilhar a solução.

É verdade também que a sintaxe pouco familiar de shell-script pode assustar um pouco quem está começando. Mas a questão é que a vida fica muito mais fácil depois que você destrincha o básico.

Experimente um pouco. Quem sabe, capaz de você acabar se divertindo nessa brincadeira!

Motivo 3: por que você se importa que eu aprenda essa velharia?

Hã, esse não é bem um motivo, mas é uma reação esperada. E a resposta é: porque eu só tenho a ganhar.

Veja só, se você aprender shell-script e conseguir otimizar sua vida um pouquinho, vai sobrar tempo pra você aprender ainda mais um pouquinho de shell-script e otimizar ainda mais e assim por diante, então a tendência é o mundo melhorar, ha-ha!

Piadinhas à parte, a verdade é que aos poucos você vai começar a perceber que pode resolver um monte de problemas que antes você nem se dava conta que existiam. Problemas que, apesar de você não vê-los, estavam lá atrasando sua vida, atrapalhando seu desempenho, deixando você numa espécie de indefesa aprendida.

Shell-script é uma ferramenta semelhante ao seu editor de textos ou IDE, no sentido que vai acompanhar você pelo resto da vida. Por isso vale a pena aprender, pois você terá retorno continuamente. E você estará sempre descobrindo coisas novas e o domínio do shell vai continuar consistentemente lhe recompensando, à medida que você vai aprendendo outras coisas.

Essa é a beleza de shell-scripting, a de permitir você combinar várias coisas, mesmo algumas que não tenham sido feitas para serem combinadas. É a beleza da filosofia Unix. Thanks, Mr. McIlroy, we’ve seen the light now.

Um dos melhores investimentos do meu tempo na época que estava na faculdade foi ler boa parte do Advanced Bash Scripting Guide, quando um dos rapazes do laboratório imprimiu uma cópia em folha dupla e letra miúda pra ficar fácil de carregar. É meio comprido, mas é uma excelente fonte para aprender: é recheada de exemplos, ensina boas práticas e tem várias notas sobre portabilidade.

Mas se você não curte ler em inglês, não desanime. Pode começar com a página do Aurélio, que é como comecei também, no fim das contas. Leia o livro dele.

Fuja das desculpas, e comece logo. O retorno é garantido.