Kommandoen `Trap` i UNIX brukes til
håndtere signaler , som er asynkrone hendelser som kan avbryte en løpsprosess. Signaler brukes til å varsle en prosess med forskjellige hendelser, for eksempel:
* Oppsigelsessignaler: Disse signalene blir sendt til en prosess for å avslutte den, for eksempel `Sigint` (avbrudd) eller` Sigterm` (avslutte).
* Feilsignaler: Disse signalene blir sendt til en prosess for å indikere en feil, for eksempel `sigsegv` (segmenteringsbrudd).
* Andre signaler: Det er forskjellige andre signaler, for eksempel `sigusr1` og` sigusr2`, som kan brukes til tilpassede formål.
hvordan `Trap` fungerer
Kommandoen `Trap` lar deg spesifisere hvilke tiltak som skal utføres når et bestemt signal mottas av en prosess. Den har følgende syntaks:
`` Bash
Trap 'Command' signal
`` `
* `Command` :Dette er kommandoen eller sekvensen av kommandoer som vil bli utført når det spesifiserte signalet mottas.
* `signal` :Dette er signalnummeret eller navnet du vil felle.
eksempler
1. Håndtering `Sigint` (avbrudd):
`` Bash
felle 'ekko "avbrutt! Utgang ..."; Avslutt 'int
`` `
Dette vil skrive ut meldingen "avbrutt! Utgang ..." og deretter avslutte skriptet når `Ctrl+C` trykkes (som sender` Sigint` -signalet).
2. ignorering av `Sigquit` (Quit):
`` Bash
felle '' avsluttes
`` `
Dette vil ignorere `Sigquit` -signalet (vanligvis sendt av` Ctrl+\ `) og forhindre at det avslutter skriptet.
3. Kjør et opprydningsskript:
`` Bash
Trap 'Cleanup.sh' avkjørsel
`` `
Dette vil utføre `cleanup.sh` -skriptet når prosessen kommer ut, uavhengig av årsaken til oppsigelse.
Viktige merknader:
* Kommandoen `Trap` påvirker bare den nåværende skallprosessen.
* Hvis du vil håndtere signaler i en barneprosess, må du bruke `Trap` innenfor den barneprosessen.
* Du kan bruke alternativet `-l` med` Trap` for å liste opp alle tilgjengelige signaler.
Oppsummert gir `Trap` en kraftig mekanisme for håndtering av signaler og kontrollerer oppførselen til UNIX -skriptene dine som svar på forskjellige hendelser.