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

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

Re: [shell-script] Dúvida redirecionamento para alguns comandos.


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Dúvida redirecionamento para alguns comandos.
Date: Mon, 29 Oct 2007 19:10:44 -0300

Almir Almir...

Quando vc faz

comando1 | comando2

vc esta fazendo isso, só que sem escrever em disco

comando1 > arquivo

comando2 < arquivo

Ou seja, o pipe é vc conectar, com um TUBÃO, a saida padrão do
comando1 na entrada padrão do comando2. Para que isso funcione o
comando2 precisa *ler* os comandos pela entrada padrão.

ex: um comando que le da entrada padrão fica esperando que vc digite
alguma coisa quando vc não informa nenhum arquivo (como o tr, cat,
grep, awk, etc...)

$ cat
opa! eu posso escrever e o cat está lendo! e se eu der um enter?
opa! eu posso escrever e o cat está lendo! e se eu der um enter?
CARACORES! o cat escreveu de volta!!! (Ctrl+D pra sair)

$ ls | cat # isso funciona!

agora um comando como o cp ou o mv não leem nada da entrada padrão

$ cp
cp: missing file operand

Nesses casos vc tem 2 opções

- Veja no man se vc pode forçar que seja lida a entrada padrão através de um -

ex:

$ grep "lua" /etc/passwd - /proc/cpuinfo

nesse caso o grep vai ler primeiro o passwd, depois vai ler a entrada
padrão até um Ctrl+d e depois vai ler o cpuinfo.

Entretanto comandos como o kill, mv, rm... não faz sentido ler nada
pela entrada padrão. Vc precisa recriar o comando através de algum
artificio como o xargs!

tente isso:

ps -A | grep $1 | cut -f2 -d " " | xargs echo kill

sacou como funciona? então tira o echo e manda bala!!

On 10/29/07, almirgomesjr <address@hidden> wrote:
>
> Fala glr, primeiro quero dizer que este é meu primeiro post, cheguei a
>  dar uma pesquisada, mas n consegui o q eu queria... Espero não esta
>  perguntando besteira.
>  Bem... vamos lá.
>
>  #!/bin/bash
>  #Script para matar processo chato.
>  #
>  #(sei que esta não é a melhor forma de se fazer isso, mas estou tentando
>  #praticar o pouco conhecimento que tenho).
>
>  ps -A | grep $1 | cut -f2 -d " " | kill
>
>  Não consigo fazer o comando kill receber a saída do comando anterior.
>  Tenho percebido que alguns comandos não permitem isso. Alguém poderia
>  me explicar pq o grep, por exemplo, usa o stdout e o kill não faz
>  isso? (motivos de segurança?)
>
>  Desde já, agradeço.
>
>                    



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/


reply via email to

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