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

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

Re: [shell-script] Re: comando awk com print


From: Julio C. Neves
Subject: Re: [shell-script] Re: comando awk com print
Date: Mon, 13 Feb 2012 09:01:05 -0200

Ô Luiz,
eu escrevi 10 km de resposta e vc só leu 1 m! Usei o cut pq acho um absurdo
usar o awk para cortar. É como matar mosquito com bazuca.

O problema da sua linha da comandos, está no uso de aspas e apóstrofos.
Está errado. Vc trocou uma aspa por 2 apóstrofos. Eu apóstrofo uma cerveja
como o erro está aí. ;)

Mas se vc quiser fazer funcionar com cut, então faça:

$ uptime
 08:57:50 up 22 days, 14:14,  4 users,  load average: 0.01, 0.25, 0.28
$ uptime | tr -s ' ' | cut -f11- -d' '
0.01, 0.25, 0.28

OBS: Antes fiz um uptime completo, só para deixar usuários rWin com água na
boca... 22 dias sem desligar o notebook. Se fosse rwin, em menos de 5 dias
já teria carcomido as próprias entranhas... ;)

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 13 de fevereiro de 2012 08:27, Luiz <address@hidden> escreveu:

> **
>
>
> 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]
> >
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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