Kommandot `Trap 'i Unix används för att
hantera signaler , som är asynkrona händelser som kan avbryta en löpningsprocess. Signaler används för att meddela en process med olika händelser, till exempel:
* Terminationssignaler: Dessa signaler skickas till en process för att avsluta den, till exempel "Sigint" (avbrott) eller "SigTerm" (avslut).
* felsignaler: Dessa signaler skickas till en process för att indikera ett fel, till exempel "Sigsegv" (segmenteringsöverträdelse).
* Andra signaler: Det finns olika andra signaler, såsom `SigusR1` och` SigusR2`, som kan användas för anpassade ändamål.
hur `fäll" fungerar
Kommandot "Trap" låter dig ange vilka åtgärder som ska vidtas när en viss signal tas emot genom en process. Den har följande syntax:
`` `bash
Trap 'Command' -signal
`` `
* `kommando` :Detta är kommandot eller sekvensen av kommandon som kommer att köras när den angivna signalen tas emot.
* `signal` :Detta är signalnumret eller namnet som du vill fånga.
exempel
1. hantering `Sigint` (avbrott):
`` `bash
Trap 'echo "avbruten! exit 'int
`` `
Detta kommer att skriva ut meddelandet "avbruten! EXIT ..." och sedan avsluta skriptet när `ctrl+c` trycks in (som skickar signalen 'Sigint').
2. ignorerar `Sigquit` (Avsluta):
`` `bash
Trap '' sluta
`` `
Detta kommer att ignorera signalen "Sigquit" (vanligtvis skickas av `ctrl+\`) och förhindra att det avslutas skriptet.
3. Kör ett saneringsskript:
`` `bash
Trap 'Cleanup.sh' utgång
`` `
Detta kommer att utföra skriptet "Cleanup.sh" när processen går ut, oavsett orsaken till uppsägning.
Viktiga anteckningar:
* Kommandot "Trap" påverkar bara den aktuella skalprocessen.
* Om du vill hantera signaler i en barnprocess måste du använda "fällan" inom den barnprocessen.
* Du kan använda alternativet "-l" med "Trap" för att lista alla tillgängliga signaler.
Sammanfattningsvis ger "Trap" en kraftfull mekanism för att hantera signaler och kontrollera beteendet hos dina Unix -skript som svar på olika händelser.