Compare Preços no Buscape e no BondFaro
BuscaPé, líder em comparação de preços na América Latina

HP AMD Turion 64 X2 1.9 GHz
2 Gb RAM - 160 Gb HD

C++ Guia para Iniciantes
Herbert Schildt

Sony Cyber-shot DSC - T70
8.1 Megapixels

Trilogia Star Wars

CD Silence
Sonata Arctica

Pelúcia Snoopy

Patinho Faminto
www.patinho.net

Apostilas
Expr Regular
Remasterização
SED
Shell Script

Distros
Dizinha
Patinho Faminto

Nerd
Desejo Nerd
Shell Scripts

Artístico
Livro
Musica
Poesias
Tirinhas

Bobagens
Ascii Art
Games Antigos
Porque Amar Nerds
Porque Não Amar Nerds

Eu
About Me
Recomendo
Contato
DOAÇÕES

Amigos
Aurélio
Jogos Antigos
NeoDizinha
Nerds Nervosos
ProibidoParaNormais


* = Recentemente Atualizado



website stats
Locations of visitors to this page

Anúncio provido pelo BuscaPé
BuscaPé, líder em comparação de preços na América Latina

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

Votar:
Postado em: 2008-03-11

Ver Indice Geral da Apostila de Shell Script

Doações
Se quer nos ajudar, pode doar pelo PagSeguro

Ou pode doar pelo Paypal clicando no botão DONATE

Compare Produtos, Lojas e Preços


As poesias devem virar um livro impresso?
Claro
Só se tiver menos de 60 páginas
Só se tiver entre 60 e 120 páginas
Só se tiver mais que 120 páginas
Só vou comprar se for barato
Só vou comprar para você ficar feliz
Livro? Que Livro? Que poesia?
Resultado