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

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

Re: comando awk com print


From: Luiz
Subject: Re: comando awk com print
Date: Mon, 13 Feb 2012 10:27:12 -0000
User-agent: eGroups-EW/0.82

 Ola Julio

   O que estou tentando fazer é me conectar em outro servidor através do 
comando 'ssh' e executar o comando 'uptime' capturando as tres ultimas colunas 
que é resultado do load average.
   Executando o comando pelo prompt obtenho o resultado. 
   O problema esta em executar este comando atraves de um programa pascal 
invocando o shell.
   Tentei utilizar o que você me recomendou mas não obtive sucesso.

   Consigo executar o comando utilizando o cut
     uptime | cut -d ":" -f5

   Isto funciona quando o resultado do comando uptime é:
08:25:00 up 16 days, 21:12, 11 users, load average: 0.03, 0.03, 0.00
 
  Mas quando o resultado é
08:05:00 up 16 days, 15 min, 11 users, load average: 0.03, 0.03, 0.00
   tenho que utilizar o comando  uptime | cut -d ":" -f4

  Por isso estou tentado com o comando awk para extrair as ultimas colunas. Mas 
o awk junto com print esta dificultando as coisas.

  Não sei se consegui ser claro no descrito acima.
  Se puder me ajudar, é mais um desafio para mim porque com cut esta
funcionado.

Weber





--- Em address@hidden, "Julio C. Neves" <julio.neves@...> escreveu
>
> Fala Luiz,
> não vai ser fácil explicar, mas tentarei, mas antes de mais nada já vou
> lugo dizendo: nunca, eu disse NUNCA! use 'sh ...' Vc tem um tremendo
> interpretador chamado Bash. Pq criar uma instância de uma tytyca por cima
> dele? Nunca faça isso! Se necessário, que não é o caso, faça 'bash -c ...'
> 
> Bem vamos lá:
> 0 - O trecho que vc fez ''uptime | awk '{print $10,$11,$12}''' está furado,
> pq vc abriu aspas, abriu apóstrofos e fechou apóstrofos, fechou apóstrofos
> e novamente fechou apóstrofos.
> 1 - O awk requer que seu escopo esteja entre apóstrofos;
> 2 - Pela tua sintaxe (que desconheço o que seja) vc aspas antes do uptime e
> depois do awk, isso significa que se vc colocar novas aspas ou apóstrofos
> para o famigerado sh -c, vc estará fechando-os e reabrindo-os no meio do
> cmd e deixando um pedaço exposto ao shell.
> 
> Não sei se me fiz claro, mas as coisas ficarão certas se vc trocar os 2
> últimos apóstrofos por uma aspa (isso tem singular?).
> 
> Abcs,
> Julio
> *Já foi lançado "Bombando o
> Shell<http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666>
> ". *
> *Show **de interfaces gráficas sob Shell!*
> *
> *
> 
> 
> 
> Em 10 de fevereiro de 2012 22:24, Luiz <weberlf@...> escreveu:
> 
> > **
> >
> >
> > Caros da lista
> >
> > Se executar o comando abaixo,
> > ssh -o ConnectTimeout=10 -p 5960 suporte@... ''uptime | awk
> > '{print $10,$11,$12}'''
> >
> > Obtenho o resultado
> >
> > 0.00, 0.00, 0.00
> >
> > Mas se executar o comando atraves de um programa pascal
> >
> > sh -c "ssh -o ConnectTimeout=10 -p 5960 suporte@... ''uptime |
> > awk '{print $10,$11,$12}'''"
> >
> > Obtenho 0 1 2
> >
> > Se executar com aspas simples
> >
> > sh -c 'ssh -o ConnectTimeout=10 -p 5960 suporte@... ''uptime |
> > awk '{print $10,$11,$12}''''
> >
> > Obtenho o erro
> >
> > awk: cmd. line:1: {print
> > awk: cmd. line:1: ^ unexpected newline or end of string
> >
> > Poderiam me auxiliar ?
> >
> > Weber
> >
> >  
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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