[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
- lógica, Celso Vianna, 2004/10/07