Gunfree.info / 50 artigos / 58 comentários / artigos / comentários

Como escrever um Shell Script

Muita gente vem me enviando e-mails ultimamente com dúvidas sobre shell. E o mais impressionante, é que todas elas são extremamente básicas, que muitos poderiam resolver lendo o site do Julio Neves ou o Canivete do Aurelio.

Mas, como não entendo as pessoas mais chegadas que me perguntam ao invés de pesquisar no site destes dois gênios, vou fazer uma breve explicação sobre o Bash.

O shell é um interpretador de linha de comando. Ou seja, você digita os comandos e ele executa para você. Parece simples né? Mas não é tão simples assim, pois como esperado ele tem uma linguagem própria de programação que chamamos de Shell Script. Note que existem outros shells, mas eu sei apenas o Bash. Então se você procura informações sobre sh, csh ou ksh ou qualquer-outra-coisa-sh, refine sua pesquisa no Google.

O primeiro script a gente nunca esquece

Não, não vou fazer o clássico “hello world” por aqui. Usarei um exemplo decente, mais rotineiro.

Digamos que, você em seu dia-a-dia executa muito o comando grep fulano@empresa /var/log/maillog | grep -v “relay=pop.”. Não seria muito mais fácil digitar algo como Rejeitados Email?

Então eu recomendaria fazer um Shell para isso. Mas como? Simples, seguindo os passos abaixo:

cd ~/bin
vi Rejeitados
esc i
grep $1 /var/log/maillog | grep -v "relay=pop."
esc :x!
chmod +x Rejeitados

Notas

Este exemplo basicão merece alguns highlights:

  1. Um shell script é um arquivo texto
  2. Um shell script tem que ser executável:
    chmod +x Rejeitados
  3. Precisam estar no seu path, e a princípio ~/bin está no seu path.
  4. Argumentos são passados por linha de comando e são referenciados. Como por exemplo o $1.

Mas existe um erro neste meu exemplo. Todo shell script para bash que se preze, tem que começar com o #!/bin/bash. Você até pode ignorar isso, mas eu não recomendo. Um bom script é o que tem o caminho para seu interpretador.

E agora é para valer, está escrito aqui que o material do Aurélio e o do Julio Neves são EXCELENTES. Usem-os e parem de me fazer perder tempo com e-mails tão inocentes.

2 comentários

  1. silver — 14/06/2008 #

    Agora sim! Comentarei direto!

  2. Gunfree — 14/06/2008 #

    Então inicie fazendo comentários sobre os textos… hehehehe

Deixe um comentário