Sintaxe:
armadilha [-lp] [[arg] Signal_spec…]
ou
armadilha [ação] [sinal]
Chave | Descrição |
-eu | É usado para exibir a lista de todos os nomes de sinais com o número correspondente. |
-p | É usado para exibir comando de sinal ou comando de armadilha para signal_spec. |
Arg | É usado para executar um comando quando o shell recebe o (s) sinal (s). |
Signal_spec | Ele contém o nome do sinal ou o número do sinal. |
Comando de armadilha sem qualquer opção e arg
Execute o seguinte comando do terminal para exibir a lista de todos os comandos associados a cada condição. Se algum comando 'trap' não estiver definido antes, o comando a seguir não exibirá nenhuma informação.
$ trap
Comando de trap com -l opção
Execute o seguinte comando do terminal para exibir a lista de todos os nomes de sinais com número.
$ trap -l
A saída do comando acima mostrará a lista de 64 sinais com números.
Defina o comando TRAP para ERR e saída
O seguinte primeiro comando definirá um comando 'trap' que será executado quando qualquer erro de shell ocorrer ou saídas de shell. Este comando 'trap' removerá Temp.TXT arquivo do local atual. O comando 'ls' é usado para verificar o Temp.TXT O arquivo existe ou não no local atual. Por último saída O comando é usado para fechar o terminal e executar o comando 'trap' que é definido antes.
$ trap 'rm temp.Txt 'err saída
$ ls
$ saída
A saída a seguir aparecerá após a execução dos comandos acima.
Agora, se o usuário abrir o terminal novamente após a saída e executar o comando 'LS', então Temp.TXT O arquivo não existirá.
Defina o comando 'trap' com o número do sinal de SIGUP, SIGQUIT e SIGKILL
O número do sinal de SIGUP, SIGQUIT e Sigkill são 1, 3 e 9. O primeiro comando a seguir definirá uma armadilha para esses três sinais. Quando algum desses sinal ocorrerá, a mensagem “O comando de trap é executado”Irá imprimir. Execute o seguinte comando do terminal.
$ trap 'eco trap comando executado' 1 3 9
Quando o usuário vai pressionar Ctrl+c Para gerar o sinal de atribuição do sinal por 'trap', então o 'eco' Comando do comando TRAP será executado e a seguinte saída será exibida.
Definir comando 'trap' para o sigterm em um script
Sigterm O sinal é usado para encerrar o processo imediatamente, liberando seus recursos. Crie um arquivo bash chamado 'trapscript.sh'Com o seguinte código. Um infinito para loop é declarado no script que imprimirá um texto continuamente até Sigterm Ocorre o sinal. O usuário tem que pressionar Ctrl+z para gerar Sigterm sinal.
trapscript.sh
#!/BIN/BASH
# Defina uma armadilha para sinais SIGINT e SIGTERM
armadilha "ecoar o programa é encerrado."SIGTERT SIGINT
#Display Mensagem para gerar SigMert
eco "Pressione Ctrl+Z Pare o processo"
#Initialize Counter Variable, eu
i = 1
#declare infinito para loop
para(;;)
fazer
#Print Message with Counter i
eco “executando o loop por US $ i times”
#Ncrement o balcão por um
((i ++))
feito
Execute o script executando o seguinte comando e pressione Ctrl+Z para gerar Sigterm sinal. A seguinte saída semelhante aparecerá.
$ Bash trapscript.sh
Defina um comando 'trap' para executar uma função com base em sinal específico
Você pode associar um comando 'trap' a qualquer função definida pelo usuário. Crie uma festa chamada trapfunc.sh e adicione o seguinte script. Aqui, uma função personalizada nomeada func () é declarado para imprimir uma mensagem simples, "Tarefa completa". Um loop for-in é definido para ler e imprimir a lista de todos os arquivos e pastas do diretório de trabalho atual. 'armadilha' O comando definido no início da lista chamará a função, func () Quando o programa termina.
trapfunc.sh
#!/BIN/BASH
# Ligue para a função Func na saída
TRAP Func Exit
# Declare a função
função func ()
eco "tarefa concluída"
# Leia os arquivos e pastas da lista de diretórios atuais usando o loop
para eu em *
fazer
eco "$ i"
feito
Execute o script do terminal.
Execute o script.
$ Bash Trapfunc.sh
A saída a seguir mostra que, "Tarefa completa”O texto é impresso após a impressão de todos os arquivos e pastas do diretório atual.
Este tutorial mostra como o comando 'trap' pode ser usado no Linux para executar qualquer tarefa automatizada com base no sinal gerado. Ajuda os usuários a rastrear diferentes tipos de erros e tomar medidas adequadas que podem ser atribuídas antes usando este comando. Muitos programas ou scripts alocam alguns recursos específicos ao executar no sistema. Se algum programa em execução ou script saia ou rescindir anormalmente, os recursos usados por esse programa serão bloqueados. O comando 'trap' pode ser usado para resolver este problema. A tarefa de limpeza de recursos pode ser feita facilmente usando este comando. Espero que o leitor tenha uma idéia clara dos usos deste comando depois de ler este tutorial.