[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- RES: [shell-script] Duvida...,
Julio Cezar Neves - DISB.O <=