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

Tcl/Tk
Alexander Franca

MP6 Emulator
Dynacom 2 Gb

O Enigma de
Kaspar Hauser

CD Awake
Dream Theater

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

IF mais a fundo. Comparações com && ( E ) e || ( ou )

Complicou? Calma vamos aos exemplos do dia-a-dia
- Você vai ao cinema semana que vem?
- SE não estiver chovendo E SE eu tiver com dinheiro, eu vou.
Esse é o IF com && ( E ), nele só será executada quando todas condições forem verdadeiras.
No caso "NÃO ESTAR CHOVENDO" e "ESTAR COM DINHEIRO".
Se "não chover", mas também "não ter dinheiro" não pode ir ao cinema.
Se "estiver com dinheiro", mas "chover" não dá pra ir ao cinema

 
 

IF com && ( e )

Imagine que vá fazer um script que acha a área de um retângulo. A base nem a altura podem ser menores que 1. Então:

area_retangulo.sh

echo "Qual o tamanho da Base do retângulo?"
read base

echo "Qual a Altura do retângulo?"
read altura

        if [[ $base -gt 0 && $altura -gt 0 ]]
        then
                echo "A área do retângulo é $(($base*$altura))"
        fi

O comando "read" pega o que o valor que o usuário digitar e guarda na variável "base".
Veremos o mais sobre o "read" mais a frente.

 
 

IF com || ( ou )

No exemplo com || ( ou ), basta que uma condição seja verdadeira para executar a ação.
Exemplo do dia-a-dia:
- SE acordar cedo OU for de carro, você chegará no horário
Basta acordar cedo para se chegar no horário.
Mas ir de carro também é uma solução. Logo qualquer uma das opções ( ou ambas ao mesmo tempo ) leva ao resultado de "chegar cedo".
No exemplo anterior, acredito que o melhor seria mostrar uma mensagem de erro caso o usuário digite um valor inadequado, assim ele saberia o que ocorreu. Então o script ficaria:

area_retangulo2.sh

echo "Qual o tamanho da Base do retângulo?"
read base

echo "Qual a Altura do retângulo?"
read altura

	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

Nesse caso, usei no IF a opção -lt ( menor que ) 1. Para exemplificar a opção OU no if.
Mas aproveito para mostrar um erro comum entre alguns programadores. Lembre-se que:
Estamos trabalhando com números inteiros, então o script funciona normalmente, mas se fossemos utilizar números reais o script não funcionaria adequadamente, já que é possível ter um retângulo de base 0.5 cm, por exemplo.

 
 

Nota: 8

Votar:
Postado em: 2008-03-09

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