Como fazer meus Scripts usarem pipes também ? [RESOLVIDO]

1. Como fazer meus Scripts usarem pipes também ? [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 20/08/2011 - 11:27h

Olá scripteiros ;)

Pesquisei nos foruns da comunidade e também procurei ler vários artigos sobre passagens de parâmetros e substituições de processos, mas não encontrei algo especificamente para a construção e utilização de pipes entre nossos próprios scripts.

Minha dúvida.

1 - MinhasNotas.sh (listas de 3 a 5 colunas) Depende dos parametros. Pode gerar um arquivo de saída opcional.
2 - Classificados.sh (faz ordenações com base em dados recebidos e formata)

Se eles fossem igual aos comandos ls, grep e awk, poderia passar um pipe entre eles, exemplo:

ls -l *.cl | MinhasNotas.sh -a -c | Classificados.sh -3 -o | sed 's/classe/ //g'

tradução:
- listando arquivos de um diretório.
- Passando para o script MinhasNotas.sh
- filtrando só aprovados.
- Que se encontram com média c
- Passando o resultado para o Classificados.sh
- Irá gerar novo formato com 3 colunas.
- Gerando saida por linha -o sem detalhes e nem totalizadores.
- Passa para o sed retirar o nome classe.
- O resultado serão nomes,notas e turmas.

Na verdade eu consigo fazer a primeira parte. Recebe os dados do ls. Não funciona a passagem do próximo pipe, nada acontece.
Tem algum macete pra incluir dentro dos Scripts que permita o uso de pipes ?

Se resolver, muitos programas nem precisam ser feitos e poderia cruzar várias necessidades que nem foram previstas.
Qualquer ajuda para iniciar o caminho das pedras é bem vinda.

@GA_Tux - recuperando a frase favorita: " "Quem pergunta é bobo por 5 minutos... Quem não pergunta é bobo para sempre!" (Proverbio chinês)


oops: Fontes de pesquisas.
http://www.vivaolinux.com.br/dica/Pipes-no-Linux
http://www.vivaolinux.com.br/topico/Comandos/pipe-e-cp
http://www.vivaolinux.com.br/dica/Named-Pipe-(First-in-First-out)-FIFO
http://www.vivaolinux.com.br/dica/Usando-o-pipe
http://www.vivaolinux.com.br/script/Dicas-e-explicacoes-de-comandos-do-Linux-rapidos-e-reeditaveis
http://www.vivaolinux.com.br/artigo/Nagios-Falante?pagina=4
http://www.vivaolinux.com.br/topico/Shell-Script/receber-info-de-um-sokcet
http://www.vivaolinux.com.br/artigo/Introducao-ao-uso-de-Shell-Script?pagina=6
http://www.vivaolinux.com.br/script/Grep-em-loop-infinito
http://www.vivaolinux.com.br/topico/Shell-Script/Fazer-Script-Shell-utilizar-100-de-CPU?num_por_pagi...
http://www.vivaolinux.com.br/artigo/Sinais-em-Linux





  


2. MELHOR RESPOSTA

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 20/08/2011 - 11:46h

Li rapidamente, mas a lógica seria a seguinte.

Seu script tem que terminar enviando alguma coisa para a saída padrão, ai você pode usar o pipe para passar para outro comando ou script.

Exemplo:

[script meu_nome.sh]
#!/bin/bash
#......vários códigos malucos
echo "Raimundo Portela"
[fim do script]

ai chama ele:

$ ./meu_nome.sh | grep 'Portela'
Raimundo Portela

Esse é o conceito básico, precisando estamos ai :-)

3. Re: Como fazer meus Scripts usarem pipes também ? [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 20/08/2011 - 11:48h

Detalhe, seu script não pode gerar sujeira, apenas deve retornar algo caso dê certo, senão não retorna nada mesmo.

É um dos postulados básicos de programação do UNIX :-)




4. Re: Como fazer meus Scripts usarem pipes também ? [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 20/08/2011 - 14:09h

Sua resposta funcionou :)
---------
#!/bin/bash
# lista.sh
#......vários códigos malucos
echo "Raimundo Portela" "nome" "classe"
echo "Geraldo Albuquerque" "nome" "classe"
---------
#!/bin/bash
#......vários códigos malucos
# ordem.sh
sort $1
---------

comandos:
---------
[14:08 - 0.00]
[administrador@ga-tux 12] sh-pra-testar $> ./lista.sh |grep classe | ./ordem.sh

#>Geraldo Albuquerque nome classe
#>Raimundo Portela nome classe
---------

Os problemas estão no meu código. Voltando pra prancheta :)



5. Re: Como fazer meus Scripts usarem pipes também ? [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 29/03/2012 - 11:28h

Alterar código que por preguiça não se documenta como deve rende muitas dores de cabeça.
E depois o pessoal ainda fala que eu escrevo muito kkk. Nem lembrava que já tinha postado esta dúvida aqui.
Revendo tudo novamente.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts