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

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

RES: [shell-script] Duvida...


From: Julio Cezar Neves - DISB.O
Subject: RES: [shell-script] Duvida...
Date: Mon, 24 Jun 2002 12:36:23 -0300

Caro Paulo e Fernando Braga
o cmd trap serve para o seu script interceptar um sinal e qdo recebê-lo,
executar uma série de cmds por vc programados. Digamos que eu esteja
trabalhando com um arquivo temporário e gostaria que caso meu programa seja
descontinuado, este arquivo não ficasse como lixo. Neste caso eu faria:

#!/bin/sh
trap "rm arqtemp 2>/dev/null; exit" 0 2 3 15
. . .
. . .

Isto é, logo no início do prog, eu colocaria a linha referente ao trap, que
tem as seguintes informações para o Shell:
rm arqtemp 2>/dev/null; exit - Qdo receber um dos sinais monitorados (0, 2,
3 e 15) estou mandando remover o arquivo indesejado e saindo do prog. (se
não colocasse o exit, qdo eu recebesse o sinal, o prog. removeria o arquivo
e voltaria para a instrução seguinte à que estava sendo executada qdo o
sinal foi recebido).

0 2 3 15 - São os sinais que estou monitorando, que representam:
0 - Fim normal;
2 - CTRL+C;
3 - CTRL+\ e
15 - cmd kill sem argumentos.

Como obs., o único sinal que é impossível monitorar é o sinal 9. Por isso,
aconselho a todos _nunca_ usarem um kill -9. O prog. algumas vezes faz uma
alteração que precisa ser desfeita antes de morrer e com kill -9 isso é
impossível. Veja o exemplo:

echo Entre com sua senha:
trap "stty echo; exit" 2 3 15
stty -echo
read senha
stty echo
trap 2 3 15   # restaurando os sinais

No caso acima, caso vc não soubesse a senha e descontinuasse o programa com
um kill -9, o seu terminal ficaria sem echo. Por isso, para matar um prog.
dê preferencia ao velho kill prog. Se mesmo assim o prog não morreu, dê
primeiro um kill no programador que inibiu o sinal 15 :^).

[ ]s,
Julio Cezar Neves
-Eu Apoio o Software Livre-



> -----Mensagem original-----
> De: Paulo Campos [mailto:address@hidden]
> Enviada em: domingo, 23 de junho de 2002 03:01
> Para: address@hidden
> Assunto: Re: [shell-script] Duvida...
> 
> 
> E como se usa o trap?
> qual a sintaxe dele?
> Att,
> Paulo Campos
> www.linuxcounter.org - linux user #274960
> 
> 
> ----- Original Message -----
> From: "Júlio César Machado" <address@hidden>
> To: <address@hidden>
> Sent: Saturday, June 22, 2002 7:37 PM
> Subject: Re: [shell-script] Duvida...
> 
> 
> > Em Qui 20 Jun 2002 01:10, Paulo Campos escreveu:
> > > Aproveitando...
> > > voce sabe usar o comando trap???
> > > Att,
> > > Paulo Campos
> > > www.linuxcounter.org - linux user #274960
> > >
> > >
> > > ----- Original Message -----
> > > From: "Copag" <address@hidden>
> > > To: <address@hidden>
> > > Sent: Thursday, June 20, 2002 12:30 AM
> > > Subject: Re: [shell-script] Duvida...
> > >
> > > > Olá Paulo, como vai?
> > > >
> > > > Quem sabe um...
> > > >
> > > > kill -9 `/sbin/pidof mgetty`
> > > >
> > > > ...não funcionaria melhor?
> > > >
> > > > A respeito do script eu realmente não sei, mas você 
> poderia tentar
> > >
> > > utilizando o pidof.
> > >
> > > > [ ]'s
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > .'~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~|
> > > >
> > > > |              (o_.'  Copag [ address@hidden ]            |
> > > > |  (o_   (o_   //\    #LinuxBQ | BrasIRC.NeT                 |
> > > > |  (/)_  (\)_  V_/_   LinuxBQ - Linux ao alcance de todos!   |
> > > > |                     http://www.linuxbq.org                 |
> > > > |        Linux User Registered #176331 | UIN #47176203       |
> > > > |         Chave pública GPG: http://copag.linuxbq.org        |
> > > >
> > > > `-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~-~~'
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On Thu, 20 Jun 2002 00:19:27 -0300
> > > >
> > > > "Paulo Campos" <address@hidden> wrote:
> > > > > Galera, estou com uma pequena duvida:
> > > > > fiz o seguinte script chamado tel.sh:
> > > > >
> > > > > #!/bin/bash
> > > > > kill -9 `ps - aux|grep mgetty|cut -d" " -f7|head -n1`
> > > > >
> > > > > funciona tranquilamente, porem se eu reinicio o 
> computador e tento
> > >
> > > executar
> > >
> > > > > novamente o script da problema com o comando kill, em 
> compensacao se
> eu
> > > > > escrever os comandos no shell ele funciona! E se eu 
> editar o script
> e
> > >
> > > salvar
> > >
> > > > > novamnte com outro nome ou com o mesmo nome ele tbm 
> funciona. O que
> tem
> > >
> > > de
> > >
> > > > > errado no script? Tenho que adicionar algo para que 
> ele funcione
> mesmo
> > > > > depois do computador ser reiniciado?
> > > > >
> > > > > Att,
> > > > > Paulo Campos
> > > > > www.linuxcounter.org - linux user #274960
> > > >
> > > > 
> ---------------------------------------------------------------------
> > > > 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.listasdiscussao.cjb.net
> > >
> > > > 
> ---------------------------------------------------------------------
> > > >
> > > > Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> > >
> > > http://br.yahoo.com/info/utos.html
> > >
> > >
> > >
> > >
> > > 
> ---------------------------------------------------------------------
> > > 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.listasdiscussao.cjb.net
> > > 
> ---------------------------------------------------------------------
> > >
> > > Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> > > http://br.yahoo.com/info/utos.html
> >
> >
> > Com o comando trap você pode redefinir as funções de 
> algumas teclas.  Por
> > exemplo:  o "ctrl + c" é utilizado para interromper uma 
> execução.  Com o
> trap
> > você pode configurá-lo para fazer outra coisa.
> >
> > Se faz outras coisas, eu não sei, mas esta função eu sei que tem.
> >
> > Até a próxima.
> >
> > Júlio.
> >
> > 
> ---------------------------------------------------------------------
> > 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.listasdiscussao.cjb.net
> > 
> ---------------------------------------------------------------------
> >
> > Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html
> >
> >
> 
> 
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
--------------------------------------------------------------------- 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 



reply via email to

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