faz um engenharia reversa ae heheheh. quando vc diz [ snmpget host OID |grep -o "20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00" ] -o = only-matching. eu acho que o resultado obtido pela consulta snmp + grep é a questão.
Ex: consultou com o comando #snmpget host OID |grep -o "20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00" e a condição "20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00" foi nula, a saida não foi encontrada igual a opção -o. Parando e pensado, se $TEST = null parado. não nulo, funcionando. 2009/4/17 Felipe <[email protected]> > > > 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: [email protected] <flpe007%40yahoo.com.br> > > > ________________________________ > De: Marcus Gmail <[email protected] <marcus.jabber%40gmail.com>> > Para: [email protected] <shell-script%40yahoogrupos.com.br> > 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: flpe...@yahoo. com.br <mailto:flpe007% <flpe007%25> > 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] > > > -- " Eu quero saber como renomear um arquivo " ele diz. Por favor, é dia de pagamento, não é?! Mas eu estou de bom humor. " Claro. Basta dar 'rm' e o nome do arquivo " " Obrigado " [As partes desta mensagem que não continham texto foram removidas]
