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

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

Re: [shell-script] Named Pipe


From: Petterson Faria
Subject: Re: [shell-script] Named Pipe
Date: Sat, 15 Sep 2012 19:36:28 -0300

Porque não põe no github?

--
Atenciosamente,
Petterson Faria (enviado por dispositivo móvel)
Em 15/09/2012 17:27, "Alysson Gonçalves de Azevedo" <address@hidden>
escreveu:

> **
>
>
> Só pra terminar, segue a versão final do programinha de notas de forma
> segura (através de criptografia).
>
> http://pastebin.com/hc7DyRLY
>
> Quem interessar, fique a vontade para comentar.
>
> Alysson Gonçalves de Azevedo - (11) 8491-7730
>
> "É curioso como as pessoas ficam confusas quando a frase não terminam do
> jeito que elas periquito."
>
> Em 15 de setembro de 2012 15:53, Alysson Gonçalves de Azevedo <
> address@hidden> escreveu:
>
> > Ta, só mais esse e paro de amolar.
> >
> > Testando aqui o que você falou (e o que achei pra todo lado na internet)
> > *n>&-* #Close output file descriptor n. *1>&-*, *>&-* #Close stdoutMas
> > testando aqui:
> > *$ echo algo >-
> > $ echo algo 1>-***
> > *$ echo algo >&-*
> > bash: echo: erro de escrita: Descritor de arquivo inválido
> > *$ echo algo 1>&-*
> > bash: echo: erro de escrita: Descritor de arquivo inválido
> > Nos dois primeiros testes deu certo, nos dois últimos de erro.
> >
> > Mas para o stderr dá certo.
> > *$ ls nonfile 2>-*
> > *$ ls nonfile 2>&-*
> > Nas duas formas que testei funcionou...
> >
> > Tem alguma errado nos meus testes ou é isso mesmo?
> >
> >
> > Alysson Gonçalves de Azevedo - (11) 8491-7730
> >
> > "É curioso como as pessoas ficam confusas quando a frase não terminam do
> > jeito que elas periquito."
> >
> >
> >
> > Em 15 de setembro de 2012 14:37, Julio C. Neves <address@hidden
> >escreveu:
> >
> > fechando a 1: 1>&-
> >> associando a 1 à 3: 1>&3
> >>
> >> Abcs,
> >> Julio
> >>
> >> *
> >> *
> >>
> >>
> >>
> >> Em 15 de setembro de 2012 12:58, Alysson Gonçalves de Azevedo <
> >> address@hidden> escreveu:
> >>
> >> > **
> >> >
> >> >
> >> > É engraçado por que seu eu digito no terminal:
> >> >
> >> > $ mkfifo /tmp/note.fifo
> >> > $ exec 3<> /tmp/note.fifo
> >> > $ yad --notification --listen <&3 &
> >> > $ echo menu:'Calendário!yad --calendar|Fim!quit' >&3
> >> >
> >> > O yad aparece lá, e talz, mas mesmo assim é exibido no terminal na
> linha
> >> > seguinte.
> >> > $ menu - Calendário!yad --calendar|Fim!quit
> >> >
> >> > (repare que isso não sou eu que digitei, e sim a saida do echo
> anterior)
> >> > extranho, neh.
> >> >
> >> > e como eu fecharia a saída padrão ? Eu sei que se usa >&- mas não sei
> >> como
> >> > direcionar o 1 para o 3 e fechar os demais.
> >> >
> >> > Alysson Gonçalves de Azevedo - (11) 8491-7730
> >> >
> >> > "É curioso como as pessoas ficam confusas quando a frase não terminam
> do
> >> > jeito que elas periquito."
> >> >
> >> > Em 15 de setembro de 2012 10:42, Julio C. Neves <
> address@hidden
> >> > >escreveu:
> >> >
> >> > > Não sabia que vc estava usando o YAD e acabei de te mandar um pitaco
> >> do
> >> > > diálogo --calendar com a opção --details...
> >> > >
> >> > > Olha Alysson, já usei a opção --menu dentro do diálogo
> --notification
> >> e
> >> > > isso nunca me aconteceu. A única diferença que vejo é que eu não
> >> costumo
> >> > > mudar os separadores. Será por isso? Não creio mas não custa
> tentar. O
> >> > YAD
> >> > > ainda é muito novo e isso pode ser um bugzinho.
> >> > >
> >> > > Se for um bugzinho, essa não é a melhor saída, mas funciona: no
> >> inicio da
> >> > > função, fecha a saída primária ou associe-a ao FD 3.
> >> > >
> >> > > Abcs,
> >> > > Julio
> >> > >
> >> > > *
> >> > > *
> >> > >
> >> > >
> >> > >
> >> > > Em 15 de setembro de 2012 09:49, Alysson Gonçalves de Azevedo <
> >> > > address@hidden> escreveu:
> >> > >
> >> > > > **
> >> > > >
> >> > > >
> >> > > > A parte que estou falando está assim agora:
> >> > > >
> >> > > > >
> >> > > > > temp_pipe=/tmp/${0##*/}.$$
> >> > > > > mkfifo $temp_pipe
> >> > > > > exec 3<> $temp_pipe
> >> > > > >
> >> > > > > function _menu_atualizar() {
> >> > > > > echo 'menu:Novo!bash -c _menu_criar@Abrir!bash -c _menu_abrir@
> >> > > > @Fechar!quit'
> >> > > > > >&3
> >> > > > > }
> >> > > > > export -f _menu_atualizar
> >> > > > >
> >> > > > > yad --notification --image='tag-new' --text="Secret notes"
> >> > > > --separator='@'
> >> > > > > \
> >> > > > > --listen <&3 &
> >> > > > >
> >> > > > > _menu_atualizar
> >> > > > > trap "rm -f $temp_pipe" EXIT
> >> > > > >
> >> > > > >
> >> > > > e mesmo assim esse echo ai exibe o texto na tela.
> >> > > >
> >> > > > Alysson Gonçalves de Azevedo - (11) 8491-7730
> >> > > >
> >> > > > "É curioso como as pessoas ficam confusas quando a frase não
> >> terminam
> >> > do
> >> > > > jeito que elas periquito."
> >> > > >
> >> > > > Em 15 de setembro de 2012 09:08, Julio C. Neves <
> >> address@hidden
> >> > > > >escreveu:
> >> > > >
> >> > > > > Experimente depois de vc definir o FD 3 colocar nas saídas 1>&3.
> >> > > > >
> >> > > > > Não li o código do pastebin, mas isso deve resolver
> >> > > > >
> >> > > > > Abcs,
> >> > > > > Julio
> >> > > > >
> >> > > > > *
> >> > > > > *
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > Em 15 de setembro de 2012 01:39, Alysson Gonçalves de Azevedo <
> >> > > > > address@hidden> escreveu:
> >> > > > >
> >> > > > > > **
> >> > > > > >
> >> > > > > >
> >> > > > > > sim sim, um é o PID do atual e o outro é o PID do último
> >> programa
> >> > que
> >> > > > foi
> >> > > > > > executado.
> >> > > > > >
> >> > > > > > Agora to com outra duvida...
> >> > > > > > No programinha que to fazendo aqui:
> >> http://pastebin.com/J1cFB8tC
> >> > > > > > Ele é tipo o gnote (ou tomboy), mas que depois vou aplicar
> >> > > criptografia
> >> > > > > nos
> >> > > > > > arquivos (isso ainda não foi feito).
> >> > > > > >
> >> > > > > > A questão é que na função _menu_atualizar, mesmo o echo
> estando
> >> > com o
> >> > > > > >&3,
> >> > > > > > quando eu executo o programa aparece:
> >> > > > > >
> >> > > > > > user@note:~/shell$ ./secret_notes.sh
> >> > > > > > user@note:~/shell$ menu - Novo!bash -c _menu_criar@Abrir!bash
> >> -c
> >> > > > > > _menu_abrir@@Fechar!quit
> >> > > > > > user@note:~/shell$
> >> > > > > >
> >> > > > > > ou seja, o "menu - Novo..." continua aparecendo no terminal.
> Tem
> >> > como
> >> > > > > > fechar essa saída para que ficasse sem exibir o conteúdo do
> >> echo?
> >> > > > > >
> >> > > > > > Alysson Gonçalves de Azevedo - (11) 8491-7730
> >> > > > > >
> >> > > > > > "É curioso como as pessoas ficam confusas quando a frase não
> >> > terminam
> >> > > > do
> >> > > > > > jeito que elas periquito."
> >> > > > > >
> >> > > > > > Em 14 de setembro de 2012 22:49, Julio C. Neves <
> >> > > address@hidden
> >> > > > > > >escreveu:
> >> > > > > >
> >> > > > > > > $ echo $0
> >> > > > > > > bash
> >> > > > > > > $ echo $$
> >> > > > > > > 1546
> >> > > > > > > $ echo $!
> >> > > > > > >
> >> > > > > > > $ sleep 5 &
> >> > > > > > > [1] 12358
> >> > > > > > > $ echo $!
> >> > > > > > > 12358
> >> > > > > > >
> >> > > > > > > Entendeu a diferença entre $$ e $!?
> >> > > > > > > Abcs,
> >> > > > > > > Julio
> >> > > > > > >
> >> > > > > > > *
> >> > > > > > > *
> >> > > > > > >
> >> > > > > > >
> >> > > > > > >
> >> > > > > > > Em 14 de setembro de 2012 22:36, Alysson Gonçalves de
> Azevedo
> >> <
> >> > > > > > > address@hidden> escreveu:
> >> > > > > > >
> >> > > > > > > > **
> >> > > > > > > >
> >> > > > > > > >
> >> > > > > > > > hmm, só conhecia o $!.
> >> > > > > > > >
> >> > > > > > > > vlw
> >> > > > > > > >
> >> > > > > > > > Alysson Gonçalves de Azevedo - (11) 8491-7730
> >> > > > > > > >
> >> > > > > > > > "É curioso como as pessoas ficam confusas quando a frase
> não
> >> > > > terminam
> >> > > > > > do
> >> > > > > > > > jeito que elas periquito."
> >> > > > > > > >
> >> > > > > > > > Em 14 de setembro de 2012 22:21, Julio C. Neves <
> >> > > > > address@hidden
> >> > > > > > > > >escreveu:
> >> > > > > > > >
> >> > > > > > > > > Respostas:
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > > 1. $$ = PID do prg;
> >> > > > > > > > > 2. usando expansão de parâmetro tem de ser em 2 fases.
> >> > > > > > > > >
> >> > > > > > > > > Abcs,
> >> > > > > > > > > Julio
> >> > > > > > > > >
> >> > > > > > > > > *
> >> > > > > > > > > *
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > > Em 14 de setembro de 2012 22:04, Alysson Gonçalves de
> >> > Azevedo <
> >> > > > > > > > > address@hidden> escreveu:
> >> > > > > > > > >
> >> > > > > > > > > > **
> >> > > > > > > > > >
> >> > > > > > > > > >
> >> > > > > > > > > > Pessoal, tava dando uma olhada num exemplo que tem
> nessa
> >> > > > > > > > > > página<
> >> > > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > >
> >> > > > > > >
> >> > > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> http://www.vivaolinux.com.br/artigo/Yad-016-Eu-quero-sempre-mais-de-ti?pagina=10
> >> > > > > > > > > > >e
> >> > > > > > > > > >
> >> > > > > > > > > > No primeiro código postado, tem algo assim:
> >> > > > > > > > > >
> >> > > > > > > > > > [...]
> >> > > > > > > > > > TEMP_PIPE=$(mktemp ${0##*/}.$$)
> >> > > > > > > > > > mkfifo ${TEMP_PIPE:-nadadadadsa}
> >> > > > > > > > > > exec 3<> ${TEMP_PIPE:-nadadadadsa}
> >> > > > > > > > > > trap "rm -f ${TEMP_PIPE:-nadadadadsa}" EXIT
> >> > > > > > > > > > [...]
> >> > > > > > > > > >
> >> > > > > > > > > > Em TEMP_PIPE=$(mktemp ${0##*/}.$$), o que significa o
> >> $$ no
> >> > > > final
> >> > > > > > > ali?
> >> > > > > > > > > >
> >> > > > > > > > > > Depois, eu tentei juntar as duas primeiras linhas que
> >> citei
> >> > > > ali,
> >> > > > > > > > > > porque queria que o nome do namedpipe ficasse no
> >> TEMP_PIPE
> >> > e
> >> > > > não
> >> > > > > em
> >> > > > > > > > > > ${TEMP_PIPE:-nadadadadsa}:
> >> > > > > > > > > >
> >> > > > > > > > > > TEMP_PIPE=${$(mktemp ${0##*/}.$$):-nadadadadsa}
> >> > > > > > > > > >
> >> > > > > > > > > > mas fica dando erro de substituição incorreta. Tem
> algum
> >> > meio
> >> > > > de
> >> > > > > > > fazer
> >> > > > > > > > o
> >> > > > > > > > > > mesmo sem ser assim:
> >> > > > > > > > > > TEMP_PIPE=$(mktemp ${0##*/}.$$)
> >> > > > > > > > > > TEMP_PIPE=${TEMP_PIPE:-nadadadadsa}
> >> > > > > > > > > >
> >> > > > > > > > > > E por último, ali no trap, o que ele faz é deletar o
> >> named
> >> > > pipe
> >> > > > > > > quando
> >> > > > > > > > o
> >> > > > > > > > > > programa acaba, certo?
> >> > > > > > > > > >
> >> > > > > > > > > > Obrigado.
> >> > > > > > > > > >
> >> > > > > > > > > > Alysson Gonçalves de Azevedo - (11) 8491-7730
> >> > > > > > > > > >
> >> > > > > > > > > > "É curioso como as pessoas ficam confusas quando a
> frase
> >> > não
> >> > > > > > terminam
> >> > > > > > > > do
> >> > > > > > > > > > jeito que elas periquito."
> >> > > > > > > > > >
> >> > > > > > > > > > [As partes desta mensagem que não continham texto
> foram
> >> > > > > removidas]
> >> > > > > > > > > >
> >> > > > > > > > > >
> >> > > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > > [As partes desta mensagem que não continham texto foram
> >> > > > removidas]
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > > ------------------------------------
> >> > > > > > > > >
> >> > > > > > > > >
> ----------------------------------------------------------
> >> > > > > > > > > Esta lista não admite a abordagem de outras liguagens de
> >> > > > > programação,
> >> > > > > > > > como
> >> > > > > > > > > perl, C etc. Quem insistir em não seguir esta regra será
> >> > > moderado
> >> > > > > sem
> >> > > > > > > > > prévio aviso.
> >> > > > > > > > >
> ----------------------------------------------------------
> >> > > > > > > > > Sair da lista:
> >> address@hidden
> >> > > > > > > > >
> ----------------------------------------------------------
> >> > > > > > > > > Esta lista é moderada de acordo com o previsto em
> >> > > > > > > > > http://www.listas-discussao.cjb.net
> >> > > > > > > > >
> ----------------------------------------------------------
> >> > > > > > > > > Servidor Newsgroup da lista: news.gmane.org
> >> > > > > > > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> >> > > > > > > > >
> >> > > > > > > > > Links do Yahoo! Grupos
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > >
> >> > > > > > > > [As partes desta mensagem que não continham texto foram
> >> > > removidas]
> >> > > > > > > >
> >> > > > > > > >
> >> > > > > > > >
> >> > > > > > >
> >> > > > > > >
> >> > > > > > > [As partes desta mensagem que não continham texto foram
> >> > removidas]
> >> > > > > > >
> >> > > > > > >
> >> > > > > > >
> >> > > > > > > ------------------------------------
> >> > > > > > >
> >> > > > > > > ----------------------------------------------------------
> >> > > > > > > Esta lista não admite a abordagem de outras liguagens de
> >> > > programação,
> >> > > > > > como
> >> > > > > > > perl, C etc. Quem insistir em não seguir esta regra será
> >> moderado
> >> > > sem
> >> > > > > > > prévio aviso.
> >> > > > > > > ----------------------------------------------------------
> >> > > > > > > Sair da lista: address@hidden
> >> > > > > > > ----------------------------------------------------------
> >> > > > > > > Esta lista é moderada de acordo com o previsto em
> >> > > > > > > http://www.listas-discussao.cjb.net
> >> > > > > > > ----------------------------------------------------------
> >> > > > > > > Servidor Newsgroup da lista: news.gmane.org
> >> > > > > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> >> > > > > > >
> >> > > > > > > Links do Yahoo! Grupos
> >> > > > > > >
> >> > > > > > >
> >> > > > > > >
> >> > > > > >
> >> > > > > > [As partes desta mensagem que não continham texto foram
> >> removidas]
> >> > > > > >
> >> > > > > >
> >> > > > > >
> >> > > > >
> >> > > > >
> >> > > > > [As partes desta mensagem que não continham texto foram
> removidas]
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > ------------------------------------
> >> > > > >
> >> > > > > ----------------------------------------------------------
> >> > > > > Esta lista não admite a abordagem de outras liguagens de
> >> programação,
> >> > > > como
> >> > > > > perl, C etc. Quem insistir em não seguir esta regra será
> moderado
> >> sem
> >> > > > > prévio aviso.
> >> > > > > ----------------------------------------------------------
> >> > > > > Sair da lista: address@hidden
> >> > > > > ----------------------------------------------------------
> >> > > > > Esta lista é moderada de acordo com o previsto em
> >> > > > > http://www.listas-discussao.cjb.net
> >> > > > > ----------------------------------------------------------
> >> > > > > Servidor Newsgroup da lista: news.gmane.org
> >> > > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> >> > > > >
> >> > > > > Links do Yahoo! Grupos
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > >
> >> > > > [As partes desta mensagem que não continham texto foram removidas]
> >> > > >
> >> > > >
> >> > > >
> >> > >
> >> > >
> >> > > [As partes desta mensagem que não continham texto foram removidas]
> >> > >
> >> > >
> >> > >
> >> > > ------------------------------------
> >> > >
> >> > > ----------------------------------------------------------
> >> > > Esta lista não admite a abordagem de outras liguagens de
> programação,
> >> > como
> >> > > perl, C etc. Quem insistir em não seguir esta regra será moderado
> sem
> >> > > prévio aviso.
> >> > > ----------------------------------------------------------
> >> > > Sair da lista: address@hidden
> >> > > ----------------------------------------------------------
> >> > > Esta lista é moderada de acordo com o previsto em
> >> > > http://www.listas-discussao.cjb.net
> >> > > ----------------------------------------------------------
> >> > > Servidor Newsgroup da lista: news.gmane.org
> >> > > Grupo: gmane.org.user-groups.programming.shell.brazil
> >> > >
> >> > > Links do Yahoo! Grupos
> >> > >
> >> > >
> >> > >
> >> >
> >> > [As partes desta mensagem que não continham texto foram removidas]
> >> >
> >> >
> >> >
> >>
> >>
> >> [As partes desta mensagem que não continham texto foram removidas]
> >>
> >>
> >>
> >> ------------------------------------
> >>
> >> ----------------------------------------------------------
> >> Esta lista não admite a abordagem de outras liguagens de programação,
> >> como perl, C etc. Quem insistir em não seguir esta regra será moderado
> sem
> >> prévio aviso.
> >> ----------------------------------------------------------
> >> Sair da lista: address@hidden
> >> ----------------------------------------------------------
> >> Esta lista é moderada de acordo com o previsto em
> >> http://www.listas-discussao.cjb.net
> >> ----------------------------------------------------------
> >> Servidor Newsgroup da lista: news.gmane.org
> >> Grupo: gmane.org.user-groups.programming.shell.brazil
> >>
> >> Links do Yahoo! Grupos
> >>
> >>
> >>
> >
>
> [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]