Kommandoen `fælde 'i Unix bruges til at
håndtere signaler , som er asynkrone begivenheder, der kan afbryde en kørselsproces. Signaler bruges til at underrette en proces med forskellige begivenheder, såsom:
* Opsigelsessignaler: Disse signaler sendes til en proces for at afslutte den, for eksempel 'Sigint' (afbrydelse) eller 'Sigterm' (afslutte).
* Fejlsignaler: Disse signaler sendes til en proces for at indikere en fejl, for eksempel 'SIGSEGV' (overtrædelse af segmentering).
* Andre signaler: Der er forskellige andre signaler, såsom `SIGUSR1 'og` SIGUSR2', som kan bruges til brugerdefinerede formål.
hvordan `fælde` fungerer
Kommandoen `fælde 'giver dig mulighed for at specificere, hvilke handlinger der skal tages, når et bestemt signal modtages ved en proces. Det har følgende syntaks:
`` `bash
fælde 'kommando' signal
`` `
* `kommando` :Dette er kommandoen eller sekvensen af kommandoer, der udføres, når det specificerede signal modtages.
* `signal` :Dette er det signalnummer eller et navn, du vil fange.
Eksempler
1.
`` `bash
Trap 'echo "afbrød! Afslutning ..."; Afslut 'int
`` `
Dette udskriver meddelelsen "Afbrydet! Afslutning ..." og afslutter derefter scriptet, når `ctrl+c` trykkes på (som sender` sigint` -signalet).
2. ignorerer `sigquit '(afslutte):
`` `bash
fælde '' afslutte
`` `
Dette vil ignorere 'sigquit' signalet (typisk sendt af `ctrl+\`) og forhindre det i at afslutte scriptet.
3.
`` `bash
Trap 'Cleanup.sh' udgang
`` `
Dette udfører scriptet `Cleanup.sh ', når processen kommer ud, uanset årsagen til opsigelsen.
Vigtige noter:
* Kommandoen `fælde 'påvirker kun den aktuelle shell -proces.
* Hvis du vil håndtere signaler i en børneproces, skal du bruge 'fælde' inden for den børneproces.
* Du kan bruge indstillingen `-l` med` fælde 'til at liste alle tilgængelige signaler.
I resuméet giver 'Trap' en stærk mekanisme til håndtering af signaler og kontrol af opførelsen af dine UNIX -scripts som svar på forskellige begivenheder.