Sintassi:
trap [-lp] [[arg] segnale_spec…]
O
trap [azione] [segnale]
Chiave | Descrizione |
-l | Viene utilizzato per visualizzare l'elenco di tutti i nomi del segnale con numero corrispondente. |
-P | Viene utilizzato per visualizzare il comando di segnale o il comando trap per segnale_spec. |
arg | Viene utilizzato per eseguire un comando quando la shell riceve il segnale / i. |
segnale_spec | Contiene il nome del segnale o il numero di segnale. |
Comando trap senza alcuna opzione e arg
Esegui il comando seguente dal terminale per visualizzare l'elenco di tutti i comandi associati a ciascuna condizione. Se un comando "trap" non è impostato prima, il seguente comando non visualizzerà alcuna informazione.
$ trap
Comando trap con -l opzione
Esegui il comando seguente dal terminale per visualizzare l'elenco di tutti i nomi del segnale con il numero.
$ trap -l
L'output del comando sopra mostrerà l'elenco di 64 segnali con numeri.
Imposta il comando trap per err e uscita
Il seguente primo comando imposterà un comando 'trap' che eseguirà quando si verifica qualsiasi errore di shell o esci di shell. Questo comando 'trap' rimuoverà temp.TXT File dalla posizione corrente. Il comando 'LS' viene utilizzato per controllare il temp.TXT Il file esiste o meno nella posizione corrente. da ultimo Uscita Il comando viene utilizzato per chiudere il terminale ed eseguire il comando "trap" che è impostato prima.
$ trap 'rm temp.txt 'err ust
$ ls
$ uscita
La seguente output apparirà dopo aver eseguito i comandi sopra.
Ora, se l'utente apre nuovamente il terminale dopo l'uscita ed esegue il comando "LS", allora temp.TXT Il file non esisterà.
Imposta comando 'trap' con numero di segnale di Sigup, Sigquit e Sigkill
Il numero di segnale di Sigup, SIGQUIT E Sigkill sono 1, 3 e 9. Il seguente primo comando imposterà una trappola per questi tre segnali. Quando si verificherà uno di questi segni, il messaggio "Il comando trap viene eseguito"Stamparò. Esegui il seguente comando dal terminale.
$ trap 'comando echo trap eseguito' 1 3 9
Quando l'utente premi Ctrl+c Per generare il segnale assegnato dal comando 'trap' quindi il 'eco' Il comando comando di trap verrà eseguito e verrà visualizzato il seguente output.
Imposta comando 'trap' per Sigterm in uno script
Sigterm Il segnale viene utilizzato per terminare immediatamente il processo rilasciando le sue risorse. Crea un file bash chiamato 'trapposizione.sh'Con il seguente codice. Un loop infinito viene dichiarato nello script che stamperà un testo continuamente fino a Sigterm Il segnale si verifica. L'utente deve premere Ctrl+z generare Sigterm segnale.
trapposizione.sh
#!/Bin/Bash
# Imposta una trappola per i segnali Sigint e Sigterm
trap "echo Il programma è terminato."Sigterm Sigint
#Display messaggio per generare sigterm
Echo "Premere Ctrl+Z Stop il processo"
#Initialize Counter variabile, i
i = 1
#declare Infinite for Loop
per(;;)
Fare
#Print Messaggio con il contatore I
Echo "Esegui il loop per $ i volte"
#Increment il contatore di uno
((i ++))
Fatto
Esegui lo script eseguendo il seguente comando e premere Ctrl+Z per generare Sigterm segnale. Verrà visualizzato il seguente output simile.
$ Bash Trapscript.sh
Imposta un comando "trap" per eseguire una funzione basata su un segnale particolare
È possibile associare un comando "trap" a qualsiasi funzione definita dall'utente. Crea un Bash chiamato trapfunc.sh e aggiungi il seguente script. Qui, una funzione personalizzata denominata func () si dichiara di stampare un semplice messaggio, "Attività completata". Un loop per in-in è definito per leggere e stampare l'elenco di tutti i file e le cartelle della directory di lavoro corrente. 'trappola' Il comando definito all'inizio dell'elenco chiamerà la funzione, func () Quando il programma termina.
trapfunc.sh
#!/Bin/Bash
# Chiama la funzione Func all'uscita
Trap func uscita
# Dichiara la funzione
funzione func ()
Echo "attività completata"
# Leggi i file e le cartelle dell'elenco delle directory corrente utilizzando per loop
per me in *
Fare
echo "$ i"
Fatto
Esegui lo script dal terminale.
Esegui lo script.
$ bash trapfunc.sh
Il seguente output lo mostra, “Attività completata"Il testo viene stampato dopo aver stampato tutti i file e le cartelle della directory corrente.
Questo tutorial mostra come il comando 'trap' può essere utilizzato in Linux per eseguire qualsiasi compito automatizzato in base al segnale generato. Aiuta gli utenti a tracciare diversi tipi di errori e a intraprendere un'azione adeguata che può essere assegnata prima utilizzando questo comando. Molti programmi o script assegnano alcune risorse particolari quando si eseguono nel sistema. Se un programma in esecuzione o lo script uscirà o termina in modo anomalo, le risorse utilizzate da quel programma vengono bloccate. Il comando 'trap' può essere utilizzato per risolvere questo problema. L'attività di pulizia delle risorse può essere eseguita facilmente utilizzando questo comando. Spero, il lettore avrà una chiara idea degli usi di questo comando dopo aver letto questo tutorial.