shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] lógica


From: Fábio Batista
Subject: Re: [shell-script] lógica
Date: Thu, 7 Oct 2004 20:00:43 -0300

Pelo que entendi, vc precisa que rd01 fique "on" se o arquivo contém
uma linha com a string "1", e fique "off" se o arquivo não contém uma
linha com a string "1".
Mesma coisa com o rd02 e a string "2".

Neste caso, podemos simplificar para a seguinte forma:

[fabio@elefante testes]$ cat teste.txt
4
1
0

[fabio@elefante testes]$ cat rd.sh
#!/bin/sh

rd01=off
rd02=off
grep -q ^1$ < teste.txt && rd01=on
grep -q ^2$ < teste.txt && rd02=on

echo rd01 = $rd01
echo rd02 = $rd02

[fabio@elefante testes]$ sh rd.sh
rd01 = on
rd02 = off



Em tempo:
O erro do teu script é que você está sempre refazendo o teste e
reatribuindo o valor à variável rdXX. Assim, é como se você estivesse
fazendo a comparação apenas na última linha - ou seja, você está
guardando apenas a última resposta à pergunta que fez pro computador.

Corrigindo, então, teu script:

#!/bin/bash
rd01=off
rd02=off
while read saida
do
    if [ "$saida" = "1" ]
    then
        rd01=on
    fi
    if [ "$saida" = "2" ]
    then
        rd02=on
    fi
done < teste.txt

echo $rd01
echo $rd02

On Thu, 7 Oct 2004 09:54:28 -0300, Celso Vianna <address@hidden> wrote:
>  Neilson,
>  
>  Agora "rd01" fica "on" mesmo "1" não existindo no arquivo; como é que faria
>  para que, fique "off", quando não existe "1" no arquivo?
>  
>  Celso
>  
>  ----- Original Message -----
>  From: "Neilson Lima" <address@hidden>
>  To: <address@hidden>
>  Sent: Thursday, October 07, 2004 9:28 AM
>  Subject: Re: [shell-script] lógica
>  
>  
>  
>  oi celso,
>  
>  para comparar string: =
>  
>  
>  #!/bin/bash
>  while read saida
>  do
>      if [ "$saida" = "1" ]
>      then
>          rd01=on
>      else
>          rd01=off
>      fi
>      echo $rd01
>  
>      if [ "$saida" = "2" ]
>      then
>          rd02=on
>      else
>          rd02=off
>      fi
>      echo $rd02
>  done < teste.txt
>  
>  falou!
>  
>  Neilson
>  
>  
>  
>  
>  Celso Vianna <address@hidden> wrote:
>  all,
>  
>  tenho um arquivo (teste.txt) com o seguinte conteudo:
>  1
>  2
>  
>  ao executar o script abaixo o resultado para rd01 e rd02 é sempre "off";
> não
>  teria que ser "on"?; se coloco qquer outros valores, o resultado continua
>  sendo "off".
>  
>  while read saida
>  do
>      if [ "$saida" == "1" ]
>      then
>          rd01=on
>      else
>          rd01=off
>      fi
>  
>      if [ "$saida" == "2" ]
>      then
>          rd01=on
>      else
>          rd01=off
>      fi
>  done < teste.txt
>  
>  
>  Celso
>  
>  
>  
>  ---------------------------------------------------------------------
>  Esta lista não admite a abordagem de outras liguagens de programação, como
>  perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio
>  aviso.
>  ---------------------------------------------------------------------
>  Sair da lista: address@hidden
>  ---------------------------------------------------------------------
>  Esta lista é moderada de acordo com o previsto em
>  http://www.listas-discussao.cjb.net
>  ---------------------------------------------------------------------
>  
>  
>  
>  Yahoo! Grupos, um serviço oferecido por: São Paulo Rio de Janeiro Curitiba
>  Porto Alegre Belo Horizonte Brasília
>  
>  ---------------------------------
>  Links do Yahoo! Grupos
>  
>     Para visitar o site do seu grupo na web, acesse:
>  http://br.groups.yahoo.com/group/shell-script/
>  
>     Para sair deste grupo, envie um e-mail para:
>  address@hidden
>  
>     O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço
> do
>  Yahoo!.
>  
>  
>  
>  ---------------------------------
>  Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
>  
>  [As partes desta mensagem que não continham texto foram removidas]
>  
>  
>  
>  ---------------------------------------------------------------------
>  Esta lista não admite a abordagem de outras liguagens de programação, como
>  perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio
>  aviso.
>  ---------------------------------------------------------------------
>  Sair da lista: address@hidden
>  ---------------------------------------------------------------------
>  Esta lista é moderada de acordo com o previsto em
>  http://www.listas-discussao.cjb.net
>  ---------------------------------------------------------------------
>  
>  Links do Yahoo! Grupos
>  
>  
>  
>  
>  
>  
>  
>  
>  
> 
>  
> 
>  ---------------------------------------------------------------------
>  Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
>  ---------------------------------------------------------------------
>  Sair da lista: address@hidden
>  ---------------------------------------------------------------------
>  Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
>  ---------------------------------------------------------------------
>  
> 
>  
>  
>  Yahoo! Grupos, um serviço oferecido por: 
>  
>  
>  
>  
>  ________________________________
>  Links do Yahoo! Grupos
>  
> Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>   
> Para sair deste grupo, envie um e-mail para:
> address@hidden
>   
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> Yahoo!. 


-- 
Fábio David Batista
address@hidden
http://fabiobatista.multiply.com


reply via email to

[Prev in Thread] Current Thread [Next in Thread]