Ajuda para utilizar o case em ShellScript

1. Ajuda para utilizar o case em ShellScript

Alexandre Barsalini Pereira
alexandrebpsjc

(usa Ubuntu)

Enviado em 06/11/2010 - 22:52h

Estou com o código abaixo e aparecem 2 erros:
linha 4: erro de sintaxe próximo do `token' não esperado `)'
linha 4: `hora = $ (date +%H)'

#!/bin/bash
#oi.sh
clear
hora = $ (date +%H)
case $ hora in
0 [1-9]/1[01])
echo "Bom dia!"
;
;
1[2-8])
echo "Boa Tarde!"
;
;
*)



  


2. Re: Ajuda para utilizar o case em ShellScript

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 06/11/2010 - 22:59h

O correto:

#!/bin/bash
#oi.sh
clear
hora = $(date +%H)
case $hora in
0[1-9]/1[0-1])
echo "Bom dia!" ;;
1[2-8])
echo "Boa Tarde!" ;;
*)
echo "Boa Noite!" ;;
esac


3. Re: Ajuda para utilizar o case em ShellScript

Alexandre Barsalini Pereira
alexandrebpsjc

(usa Ubuntu)

Enviado em 06/11/2010 - 23:16h

Ainda dá erro na linha 4, vc poderia comentar as linhas?


4. Re: Ajuda para utilizar o case em ShellScript

Alexandre Barsalini Pereira
alexandrebpsjc

(usa Ubuntu)

Enviado em 06/11/2010 - 23:26h

consegui resolver da seguinte forma: na linha 4 nao tem espaço depois de hora, ficando assim:

hora=$(date +%H)


5. Re: Ajuda para utilizar o case em ShellScript

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 07/11/2010 - 10:27h

Nossa... eu sabia q era isso, mas na hora eu nem vi! :P


6. Re: Ajuda para utilizar o case em ShellScript

Alexandre Barsalini Pereira
alexandrebpsjc

(usa Ubuntu)

Enviado em 07/11/2010 - 10:45h

Cara, veja se pode me ajudar, eu perdi esta aula e sempre que executo o Shell ele retorna a frase Boa noite!, qual a lógica deste código? Pode comentar as linhas por favor?

Valeu.


7. Re: Ajuda para utilizar o case em ShellScript

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 07/11/2010 - 11:38h

O q eu entendi é assim:

#!/bin/bash

clear #limpa tela
hora = $(date +%H) #mostra as horas
case $hora in #condição para a variável hora
0[1-9]/1[0-1]) #se a variável mostrar esses valores (entre 01 às 09 ou 10 às 11)
echo "Bom dia!" ;; #vai executar esse comando
1[2-8]) #se for entre 12 às 18
echo "Boa Tarde!" ;; #executa esse comando
*) #se for qq outra coisa
echo "Boa Noite!" ;; #executa isso
esac #fim do case

O problema tá na lógica das horas, q não me parece estar correta. Como está d manhã, a lógica da manhã não bate com as horas da manhã, caindo na condição d "qq coisa", dando "boa noite". Tem uma galera aki q saca mais sobre shell script q pode t auxiliar ae. Basta esperar...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts