O comando `trap` no Unix é usado para
manipular sinais , que são eventos assíncronos que podem interromper um processo de execução. Os sinais são usados para notificar um processo de vários eventos, como:
*
Sinais de terminação: Esses sinais são enviados para um processo para encerrá -lo, por exemplo, `sigint` (interrompa) ou` sigterm` (encerrar).
*
Sinais de erro: Esses sinais são enviados para um processo para indicar um erro, por exemplo, `sigsegv` (violação de segmentação).
*
Outros sinais: Existem vários outros sinais, como `SIGUSR1` e` SIGUSR2`, que podem ser usados para fins personalizados.
como `trap` funciona O comando `trap` permite especificar quais ações devem ser tomadas quando um sinal específico for recebido por um processo. Tem a seguinte sintaxe:
`` `BASH
sinal de trap 'comando'
`` `
*
`command` :Este é o comando ou sequência de comandos que serão executados quando o sinal especificado for recebido.
*
`Signal` :Este é o número do sinal ou o nome que você deseja capturar.
Exemplos 1.
manuseio `sigint` (interrupção): `` `BASH
trap 'echo "interrompido! Sair ..."; saída 'int
`` `
Isso imprimirá a mensagem "interrompida! Sair ..." e sairá do script quando `ctrl+c` for pressionado (que envia o sinal` sigint`).
2.
ignorando `sigquit` (pare): `` `BASH
armadilha '' desistindo
`` `
Isso ignorará o sinal `sigquit` (normalmente enviado por` ctrl+\ `) e impedirá que ele termine o script.
3.
executando um script de limpeza: `` `BASH
TRAP 'Cleanup.sh' Saída
`` `
Isso executará o script `Cleanup.sh` quando o processo sair, independentemente do motivo do término.
Notas importantes: * O comando `trap` afeta apenas o processo de shell atual.
* Se você deseja lidar com sinais em um processo infantil, precisará usar `trap` nesse processo filho.
* Você pode usar a opção `-l` com` trap` para listar todos os sinais disponíveis.
Em resumo, `trap` fornece um mecanismo poderoso para lidar com sinais e controlar o comportamento de seus scripts Unix em resposta a vários eventos.