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:
- Um shell script é um arquivo texto
- Um shell script tem que ser executável:
chmod +x Rejeitados - Precisam estar no seu path, e a princípio ~/bin está no seu path.
- 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.
- Enviado por: Gunfree às 10:47 pm
- Permalink para este artigo
- Classificado como: Bash, How-to, Programação, Shell
- RSS feed dos comentários deste artigo
- TrackBack URI
Agora sim! Comentarei direto!
Então inicie fazendo comentários sobre os textos… hehehehe