[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Res: [shell-script] Duvida com o sed/grep
From: |
Felipe |
Subject: |
Res: [shell-script] Duvida com o sed/grep |
Date: |
Fri, 17 Apr 2009 07:08:48 -0700 (PDT) |
fiz o echo na $test antes do "if" e ele não trouxe nenhuma informação, imprimiu
uma linha em branco.
A crase faltou aqui no email, porém, no script ta OK.
Pq será que o grep não conseguiu achar nada e deu linha em branco?
será que pelo fato de ter esse monte de numeros eu tenho que tratar diferente?
alguém ja viu isso?
Pelo que eu entendi lendo o curso do Julio e outros na net, quando agente usa
aspas duplas entendesse que ele irá tratar o que estiver dentro como string,
inclusive numeros e espaços.
estou errado?
Felipe
MSN Messenger: address@hidden
________________________________
De: Marcus Gmail <address@hidden>
Para: address@hidden
Enviadas: Sexta-feira, 17 de Abril de 2009 10:19:22
Assunto: Re: [shell-script] Duvida com o sed/grep
Voce pode colocar um echo $TEST antes do if para ver a saida e entender
melhor. Em todo caso, no que voce mandou para a lista faltou " ` "
(crase) no final da linha, no momento da atribuicao de valor a variavel.
Voce pode usar var=$(comando) tambem.
Abs! Fique com Deus!
Felipe escreveu:
>
>
> Bom dia pra Todos,
>
> Estou aqui estudando melhor o Shell e me deparei com uma duvida,
> coloquei o seguinte comando no shell:
> CMD=`snmpget host OID |sed 's/Hex-STRING: "//'`
> Mando exibir o conteudo guardado em $CMD e o resultado é:
> Hex-STRING: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00
> Ok!
> Depois montei um script para testar este resultado, pois sei por
> exemplo que esse código quer dizer "Funcionando" mas antes faço um
> grep pra pegar apenas o que vem depois de Hex-STRING: ou seja quero
> apenas comparar o 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00.
> Então guardo isso em uma outra variavel. Por exemplo $TEST.
> E coloco da seguinte forma TEST=`snmpget host OID |grep -o "20 20 20
> 20 20 20 20 20 20 20 20 20 20 20 20 20 00" e agora comparo com o
> comando if que coloquei no script:
>
> if [ "$TEST" = "20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00" ]
> ; then
> echo "Funcionando! "
> else
> echo "Parado!"
> fi
>
> Neste caso a mensagem que deveria ser mostrada na tela seria
> "Funcionando! ", porém, a mensagem que está me retornando é "Parado!".
>
> Então minhas duvidas:
> 1º Fiz algo errado?
> 2º Isso está muito sujo, e posso deixar o codigo melhor?
> Por que o resultado esperado não fio retornado corretamente?
>
> Obrigado desde Pessoal!
>
> Felipe
> MSN Messenger: flpe007@yahoo. com.br <mailto:flpe007% 40yahoo.com. br>
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbusca dos.yahoo. com <http://br.maisbusca dos.yahoo. com>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
[As partes desta mensagem que não continham texto foram removidas]