Ver Indice Geral da Apostila de Shell Script
Crie Scripts de Forma Organizada
Criar um programa que seja fácil de interpretar não é tarefa fácil.
Muitas vezes agente escreve códigos sem pensar e depois de um tempo, quando for necessário alterar o script parece que agente tem que "decodificar" o que nós mesmos escrevemos.
Acredito que um bom programa precisa ser fácil entender, principalmente quando se trabalha em equipe. Imagina você ter que ler o programa de um amigo de trabalho e ter que "traduzir" o que foi feito?
Criei, como exemplo, um Script totalmente desorganizado. Veja como é difícil entender, mesmo sendo um script de poucas linhas:
| desorganizado1.sh |
base="5"
echo "Olá! Vou Calcular a área do retangulo"
if [ $base -lt 1 ]
then
echo "Não posso calcular um retângulo com base menor que 1"
else
altura="7"
if [ $altura -lt 1 ]
then
echo "Não posso calcular um retângulo com altura menor que 1"
else
echo "A área do retângulo é $(($base*$altura))"
fi
fi
|
Por isso aqui vão umas dicas:
Dica 1
Dê espaço entre os comandos e variáveis, de forma que as coisas fiquem agrupadas.
Sempre que possível, junte as variáveis padrão.
Veja como fica o código agora:
| desorganizado2.sh |
base="5"
altura="7"
echo "Olá! Vou Calcular a área do retangulo"
if [ $base -lt 1 ]
then
echo "Não posso calcular um retângulo com base menor que 1"
else
if [ $altura -lt 1 ]
then
echo "Não posso calcular um retângulo com altura menor que 1"
else
echo "A área do retângulo é $(($base*$altura))"
fi
fi
|
Dica 2
Deixe comentários quando achar necessário. Em shell script tudo que estiver após # é ignorado pelo script, por isso você pode descrever cada etapa do script.
O Script ficará assim:
| desorganizado3.sh |
# Variaveis
base="5"
altura="7"
# Apenas uma mensagem de entrada
echo "Olá! Vou Calcular a área do retangulo"
if [ $base -lt 1 ]
then
echo "Não posso calcular um retângulo com base menor que 1"
else
if [ $altura -lt 1 ]
then
echo "Não posso calcular um retângulo com altura menor que 1"
else
echo "A área do retângulo é $(($base*$altura))"
fi
fi
|
Dica 3
Sempre use o "TAB" para ficar mais visível cada grupo de informações.
Sempre que vou usar o IF ( ou while, for, etc. ) coloco com 1 TAB a frente do resto do conteúdo.
E coloco os comandos que esse IF executará 1 TAB a frente do IF
Veja como o script fica agora:
| desorganizado4.sh |
# Variaveis
base="5"
altura="7"
# Apenas uma mensagem de entrada
echo "Olá! Vou Calcular a área do retangulo"
if [ $base -lt 1 ]
then
echo "Não posso calcular um retângulo com base menor que 1"
else
if [ $altura -lt 1 ]
then
echo "Não posso calcular um retângulo com altura menor que 1"
else
echo "A área do retângulo é $(($base*$altura))"
fi
fi
|
Perceba que agora é muito mais fácil saber a qual IF cada ELSE e FI pertence.
Dica 4
Pense em soluções práticas, reduzindo o código.
Veja agora:
| desorganizado5.sh |
# Variaveis
base="5"
altura="7"
# Apenas uma mensagem de entrada
echo "Olá! Vou Calcular a área do retangulo"
if [[ $base -lt 1 || $altura -lt 1 ]]
then
echo "Não posso calcular um retângulo com Base ou Altura menor que 1"
else
echo "A área do retângulo é $(($base*$altura))"
fi
|
Dica 5
Tire o que não for necessário ao programa
Será que essa mensagem de entrada é importante? Eu acho que não!
Veja como um Script pode ser muito mais simples quando bem escrito
| desorganizado6.sh |
# Variaveis
base="5"
altura="7"
if [[ $base -lt 1 || $altura -lt 1 ]]
then
echo "Não posso calcular um retângulo com Base ou Altura menor que 1"
else
echo "A área do retângulo é $(($base*$altura))"
fi
|
Nota: 10
Postado em: 2008-03-11
Ver Indice Geral da Apostila de Shell Script