Se você ainda não é um ninja na arte de escrever shell script, está na hora de começar a aprender. Vamos lá!
Conheça os fundamentos do desenvolvimento de software
Talvez você nunca tenha pensado dessa forma, mas um script não deixa de ser um software. Sendo assim, é fundamental que você pelo menos conheça os fundamentos de desenvolvimento de software, principalmente algoritmos e fluxograma, que te ajudarão a conceber, planejar e desenvolver seu script.
Conheça o trio do poder supremo
Sem dúvidas, uma das grandes dificuldades em aprender uma nova linguagem de programação é não conhecer seus comandos e palavras-chave. Você pensa em desenvolver um software, sabe o que precisa ser feito mas não sabe qual é o código que executa a tarefa que você precisa.
Ao escrever um shell script, existem três coisas que eu chamo de "trio do poder supremo", porque quem as conhece bem tem condição de fazer scripts para realizar até as tarefas mais complexas. São eles:
1 - Shell: o interpretador de comandos propriamente dito (os mais usados são o bash e o sh), possui muitos comandos internos, estruturas condicionais, de repetição e variáveis que oferecem muitas possibilidades ao desenvolvedor do script;
2 - Comandos do Linux: um bom script utiliza os comandos mais adequados para cada função, para que as tarefas sejam realizadas no menor tempo possível. Quando mais comandos você conhecer e souber para que servem, mais fácil será projetar um script para atender às suas necessidades. Menção honrosa para os três comandos mais importantes para quem quer escrever shell scripts profissionais: grep, sed e awk;
3 - Expressões regulares: quem conhece, faz mágica. Você pode até saber fazer bons scripts, mas enquanto não souber usar expressões regulares não será um ninja.
Seja organizado
Um script precisa ser legível, e para isso ele deve começar organizado. Algumas dicas importantes para isso:
1 - Crie um cabeçalho para o script escrevendo seu nome, o que faz, quem escreveu e quando foi escrito, como no exemplo abaixo.
Código:
#!/bin/bash # # script-de-teste.sh # Script para demonstrar como fazer shell script # organizado # # Autor: Davidson Paulo <meuemail@meudominio.com> # Data: 20 de Setembro de 2011
Código:
## Variáveis Dir="/var/tmp" ## Funções listDir() { [ -d "$1" ] && ls "$1" || echo "'$1' não existe ou não é um diretório." } ## Rotina principal echo "Mostrando diretório '$1'" listDir "/etc"
Código:
## Variaveis VarPrimeira="1" VarSegunda="2" ## Funções funcaoPrimeira () { echo "1" } funcaoSegunda() { echo "2" }
- Evitando a sobrescrita "acidental" de variáveis: $USER e _USER='usuario';
- _mkdir (função de usuário) e mkdir (comando no PATH do sistema
4 - Por favor, use identação! Deixe seu código alinhado. Nada parece tão amador quando um código sem identação. Compare:
Código:
#!/bin/bash # Esse é um código sem identação nenhuma if [ "$USER" = "davidson" ] then echo "Válido" else echo "Inválido" fi
Código:
#!/bin/bash # Esse é um código com identação if [ "$USER" = "davidson" ] ; then echo "Válido" else echo "Inválido" fi
Use arquivos
Se seu script utiliza muitas variáveis globais e funções, você pode armazená-los em arquivos separados e deixar seu script menor. Além disso, poderá aproveitar as mesmas variáveis e funções em outros scripts.
Tomemos como exemplo o script script-de-teste.sh, mostrado lá em cima. Podemos retirar as variáveis e gravá-las no arquivo /etc/script-de-teste e fazer o mesmo com as funções, gravando-as no arquivo /usr/lib/script-de-teste. Depois, o nosso script poderia ficar bem menor:
Código:
## Variáveis . /etc/script-de-teste ## Funções . /usr/lib/script-de-teste ## Rotina principal echo "Mostrando diretório '$1'" listDir "/etc"
Contribuição do leitor: Eu prefiro usar para incluir código a instrução source e não simplesmente o ponto ., acho que assim amplificamos a legibilidade imediata do código
0 comentários:
Postar um comentário