Sintakse:
slazds [-lp] [[arg] signāla_spec…]vai
slazds [darbība] [signāls]Atslēga | Apraksts |
-l | To izmanto, lai parādītu visu signālu nosaukumu sarakstu ar atbilstošu numuru. |
-lpp | To izmanto, lai parādītu signāla komandu vai slazdošanas komandu signāla_spec. |
arg | To izmanto komandas izpildei, kad čaula saņem signālu (-us). |
signāla_spec | Tas satur signāla nosaukumu vai signāla numuru. |
- Trap komanda bez arg vērtības vai ar “-” arg vērtību atiestatīs norādīto signālu uz sākotnējo vērtību.
- Trap komanda ar 'null' arg vērtību ignorēs norādīto signālu, ko nosūta čaula vai komanda.
- Signāla_spec ar vērtību, izeja (0) izpildīs arg pēc iziešanas no čaulas.
- Signāla_spec ar vērtību atkļūdošana izpildīs arg pirms katras atsevišķās komandas.
- Signāla_spec ar vērtību atgriešanās izpildīs arg katru reizi, kad tiks izpildīta čaulas funkcija vai skripts, kuru izpildīs “.”.
- Signāla_spec ar vērtību kļūdīties izpildīs arg katru reizi, kad neizdosies komanda.
Slazdošanas komanda bez jebkādas opcijas un arg
Izpildiet šo komandu no termināļa, lai parādītu visu komandu sarakstu, kas saistītas ar katru nosacījumu. Ja kāda “lamatas” komanda nav iestatīta iepriekš, šī komanda neparādīs nekādu informāciju.
$ slazdsSlazdošanas komanda ar -l opciju
Izpildiet šo komandu no termināļa, lai parādītu visu signālu nosaukumu sarakstu ar numuru.
$ slazds -lIepriekš minētās komandas izvade parādīs 64 signālu sarakstu ar skaitļiem.
Iestatiet slazdošanas komandu ERR un EXIT
Šī pirmā komanda iestatīs komandu “slazds”, kas tiks izpildīta, kad notiek kāda čaulas kļūda vai ja iziet. Šī komanda “slazds” tiks noņemta temp.txt failu no pašreizējās atrašanās vietas. 'ls' komandu izmanto, lai pārbaudītu temp.txt fails pastāv vai neatrodas pašreizējā atrašanās vietā. Visbeidzot Izeja komandu izmanto, lai aizvērtu termināli un izpildītu iepriekš iestatīto komandu “trap”.
$ trap 'rm temp.txt 'kļūdīties iziet$ ls
$ iziet
Pēc iepriekš minēto komandu izpildīšanas parādīsies šāda izeja.
Tagad, ja lietotājs pēc iziešanas atkal atver termināli un izpilda komandu 'ls' temp.txt fails nepastāv.
Iestatiet komandu “trap” ar signāla numuru SIGUP, SIGQUIT un SIGKILL
Signāla numurs SIGUP, SIGQUIT un SIGKILL ir 1, 3 un 9. Šī pirmā komanda iestatīs slazdu šiem trim signāliem. Kad notiks kāds no šiem signāliem, tiks parādīts ziņojums “Slazdošanas komanda tiek izpildīta”Izdrukās. Izpildiet šo komandu no termināļa.
$ trap 'izpildīta echo Trap komanda' 1 3 9Kad lietotājs nospiedīs Ctrl + C lai ģenerētu signāla piešķiršanu ar komandu "trap", tad "atbalss" komanda trap tiks izpildīta, un parādīsies šāda izeja.
Skriptā iestatiet komandu SIGTERM 'trap'
SIGTERM signāls tiek izmantots, lai nekavējoties pārtrauktu procesu, atbrīvojot tā resursus. Izveidojiet bash failu ar nosaukumu 'atslēgvārds.sh"ar šādu kodu. Skriptā tiek paziņots par bezgalīgu cilpu, kas tekstu nepārtraukti drukās līdz SIGTERM rodas signāls. Lietotājam ir jānospiež Ctrl + Z ģenerēt SIGTERM signāls.
atslēgvārds.sh
#!/ bin / bash# Iestatiet SIGINT un SIGTERM signālu slazdu
trap "echo Programma ir pārtraukta."SIGTERM SIGINT
#Display ziņojums, lai ģenerētu SIGTERM
atbalss "Nospiediet Ctrl + Z apturēt procesu"
# Inicializējiet skaitītāja mainīgo, t.i
i = 1
#declare infinite for loop
priekš(;;)
darīt
# Drukāt ziņojumu ar skaitītāju i
atbalss “cikla palaišana $ i reizes”
#Papildināt skaitītāju pa vienam
((i ++))
izdarīts
Palaidiet skriptu, izpildot šo komandu un nospiediet Ctrl + Z, lai ģenerētu SIGTERM signāls. Parādīsies šāda līdzīga izeja.
atslēgvārds $ bash.sh
Iestatiet komandu “trap”, lai palaistu funkciju, pamatojoties uz konkrētu signālu
Komandu “trap” var saistīt ar jebkuru lietotāja definētu funkciju. Izveidojiet bash nosaukumu trapfunc.sh un pievienojiet šādu skriptu. Šeit pielāgota funkcija ar nosaukumu func () ir deklarēts, ka drukā vienkāršu ziņojumu, “Uzdevums pabeigts”. Ievades cilpa ir definēta, lai lasītu un izdrukātu visu pašreizējā darba direktorija failu un mapju sarakstu. "slazds" komanda, kas definēta saraksta sākumā, izsauks funkciju, func () kad programma beidzas.
trapfunc.sh
#!/ bin / bash# Izsaucot func funkciju, izejot
slazds func izeja
# Paziņojiet funkciju
funkcija func ()
atbalss "Uzdevums pabeigts"
# Izlasiet pašreizējā direktoriju saraksta failus un mapes, izmantojot cilni
priekš manis *
darīt
atbalss "$ i"
izdarīts
Palaidiet skriptu no termināla.
Palaidiet skriptu.
$ bash trapfunc.shTālāk redzamais rezultāts to parāda, “Uzdevums pabeigts”Teksts tiek izdrukāts pēc visu pašreizējā direktorija failu un mapju izdrukāšanas.
Secinājums
Šī apmācība parāda, kā komandu “trap” var izmantot Linux, lai veiktu jebkuru automatizētu uzdevumu, pamatojoties uz ģenerēto signālu. Tas lietotājiem palīdz izsekot dažāda veida kļūdām un veikt pareizas darbības, kuras var piešķirt jau iepriekš, izmantojot šo komandu. Daudzas programmas vai skripti, darbojoties sistēmā, piešķir dažus īpašus resursus. Ja kāda darbojas programma vai skripts iziet vai tiek pārtraukts neparasti, šīs programmas izmantotie resursi tiek bloķēti. Komandu 'trap' var izmantot, lai atrisinātu šo problēmu. Resursu tīrīšanas uzdevumu var viegli izdarīt, izmantojot šo komandu. Ceru, ka lasītājs gūs skaidru priekšstatu par šīs komandas lietošanu, izlasot šo apmācību.