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

Asus Eee PC 0.9 Ghz
512Mb Ram - 4Gb HD

Snoopy, Eu Te Amo
Charles M. Schulz

Olympus X-775
7.1 Megapixels

Sociedade dos
Poetas Mortos

CD Awake
Dream Theater

Pinguim de Pelúcia

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

Comando Case

O comando CASE executa uma ação caso o conteúdo de uma variável case com uma palavras
Ele é usado da seguinte forma:

case "$variavel" in
	texto1) comandos que serão executados;;
	texto2) comandos que serão executados;;
	texto3) comandos que serão executados;;
esac

Repare que após as lista de comandos a serem executados existem sempre ";;" isso mostra ao case, que todos comandos a ser executados já foram executados, sem o ";;" o script simplesmente mostrará erros e não funcionará

 
 

Exemplo:
exemplo_case.sh

echo "Digite Oi, Tchau, Amor ou Odiar"
read texto

case "$texto" in
	Oi)
	echo "Oi! Td bom?"
	;;

	Tchau)
	echo "Tchau. Até Mais!"
	;;
	
	Amor) echo "Eu amo você";;

	Odiar) echo "Eu não odeio você";;

	*) echo "Você não digitou nenhuma das opções";;
esac

O Case verifica o conteúdo da variável "$texto" se for igual a "Oi" ele escreverá "Oi! Td bom?".
Se for diferente ele segue em frente e verifica se "$texto" é igual a "Tchau"... e assim por diante...
Se o case não achar nenhum texto que case com a variável, ele mostrará "Você não digitou nenhuma das opções". Isso porque o "*" diz para o Case executar a ação com qualquer valor que tenha a variável "$texto"

Veja que escreví os ";;" em qualquer lugar e dei "ENTER" entre alguns comandos que serão executados.
Fiz isso apenas para mostrar que pode-se deixar o ";;" em qualquer lugar, mas é obrigatório que ele esteja lá ;)

 
 

Dá para fazer a mesma coisa que o CASE faz com IF, mas é muito mais complicado. Veja como ficaria um substituto para o case:

usando_if.sh

if [ "$texto" = "Oi" ]
then
	echo "Oi! aaTd bom?"
elif [ "$texto" = "Tchau" ]
then
	echo "Tchau. Até Mais!"
elif [ "$texto" = "Amor" ]
then
	echo "Eu amo você"
elif [ "$texto" = "Odiar" ]
then
	echo "Eu não odeio você"
else
echo "Você não digitou nenhuma das opções"
fi

 
 

Nota: 10

Votar:
Postado em: 2008-03-21

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