Príkazy pre Linux

Príkaz Bash trap

Príkaz Bash trap
Vstavaný príkaz bash, ktorý sa používa na vykonanie príkazu, keď shell dostane akýkoľvek signál, sa nazýva „trap“. Ak dôjde k akejkoľvek udalosti, bash odošle oznámenie akýmkoľvek signálom. Mnoho signálov je k dispozícii v bashe. Najbežnejším signálom bash je SIGINT (prerušenie signálu). Ak používateľ preruší akýkoľvek proces z terminálu stlačením kombinácie klávesov CTRL + C, odošle sa tento signál na informovanie systému.  V tejto príručke je vysvetlené, ako môžete pomocou príkazu trap spracovať rôzne typy signálov.

Syntax:

trap [-lp] [[arg] signal_spec…]

alebo

pasca [akcia] [signál]
Kľúč Popis
-l Slúži na zobrazenie zoznamu všetkých mien signálov s príslušným číslom.
-p Používa sa na zobrazenie príkazu signálu alebo príkazu trapu pre signal_spec.
arg Používa sa na vykonanie príkazu, keď shell prijme signál (signály).
signal_spec Obsahuje názov signálu alebo číslo signálu.

Trap príkaz bez akejkoľvek možnosti a arg

Spustením nasledujúceho príkazu z terminálu zobrazíte zoznam všetkých príkazov spojených s každou podmienkou. Ak nie je nastavený žiadny príkaz „trap“, potom nasledujúci príkaz nezobrazí žiadne informácie.

$ pasca

Príkaz Trap s voľbou -l

Spustením nasledujúceho príkazu z terminálu zobrazte zoznam všetkých mien signálov s číslom.

$ trap -l

Na výstupe vyššie uvedeného príkazu sa zobrazí zoznam 64 signálov s číslami.

Nastaviť príkaz trap pre ERR a EXIT

Nasledujúci prvý príkaz nastaví príkaz „trap“, ktorý sa vykoná, keď dôjde k chybe shellu alebo dôjde k jeho opusteniu. Tento príkaz „trap“ odstráni tepl.TXT súbor z aktuálneho umiestnenia. Príkaz 'ls' sa používa na kontrolu tepl.TXT súbor v aktuálnom umiestnení existuje alebo nie. Nakoniec východ príkaz sa používa na zatvorenie terminálu a vykonanie príkazu 'trap', ktorý bol nastavený predtým.

$ trap 'rm tepl.txt 'err exit
$ ls
$ výstup

Po vykonaní vyššie uvedených príkazov sa objaví nasledujúci výstup.

Teraz, ak používateľ po ukončení znova otvorí terminál a vykoná príkaz „ls“ tepl.TXT súbor nebude existovať.

Nastavte príkaz „trap“ s číslom signálu SIGUP, SIGQUIT a SIGKILL

Číslo signálu SIGUP, SIGQUIT a SIGKILL sú 1, 3 a 9. Nasledujúci prvý príkaz nastaví pascu pre tieto tri signály. Keď sa vyskytne ktorýkoľvek z týchto signálov, zobrazí sa správa „Je vykonaný príkaz Trap”Sa vytlačí.  Spustite nasledujúci príkaz z terminálu.

$ trap 'príkaz echo Trap vykonaný' 1 3 9

Keď užívateľ stlačí Ctrl + C vygeneruje signál priradený príkazom 'trap' a potom „ozvena“ vykoná sa príkaz trap a zobrazí sa nasledujúci výstup.

Nastavte príkaz „trap“ pre SIGTERM v skripte

SIGTERM signál sa používa na okamžité ukončenie procesu uvoľnením jeho zdrojov. Vytvorte bash súbor s názvom 'trapscript.š„s nasledujúcim kódom. V skripte je deklarovaná slučka nekonečna for, ktorá bude tlačiť text nepretržite až do SIGTERM dôjde k signálu. Užívateľ musí stlačiť Ctrl + Z generovať SIGTERM signál.

trapscript.š

#!/ bin / bash
 
# Pripravte pascu na signály SIGINT a SIGTERM
trap "echo Program je ukončený.„SIGTERM SIGINT
 
#Display message to generate SIGTERM
echo "Stlačením Ctrl + Z zastavte proces"
 
# Inicializovať premennú počítadla, t.j
i = 1
 
#declare nekonečno pre slučku
pre (;;)
robiť
#Tlačiť správu s počítadlom i
echo „spustenie slučky $ i-krát“
# Zvýšiť počítadlo o jednu
((i ++))
hotový

Spustite skript vykonaním nasledujúceho príkazu a vygenerujte ho pomocou klávesovej skratky Ctrl + Z SIGTERM signál. Zobrazí sa nasledujúci podobný výstup.

$ bash trapscript.š

Nastavením príkazu „trap“ spustíte funkciu na základe konkrétneho signálu

Príkaz „trap“ môžete priradiť k ľubovoľnej užívateľom definovanej funkcii. Vytvorte bash s názvom trapfunc.š a pridajte nasledujúci skript. Tu sa nazýva vlastná funkcia func () je deklarované na tlač jednoduchej správy, „Úloha dokončená“. Smyčka for-in je definovaná na čítanie a tlač zoznamu všetkých súborov a priečinkov aktuálneho pracovného adresára. „pasca“ príkaz, ktorý je definovaný na začiatku zoznamu, zavolá funkciu, func () keď sa program ukončí.

trapfunc.š

#!/ bin / bash
# Zavolajte funkčnú funkciu na výstupe
výstup z pasce
# Deklarujte funkciu
function func ()
 
echo „Úloha dokončená“

# Čítajte súbory a adresáre aktuálneho zoznamu adresárov pomocou cyklu for
pre i v *
robiť
ozvena „$ i“
hotový

Spustite skript z terminálu.

Spustite skript.

$ bash trapfunc.š

Nasledujúci výstup to ukazuje, „Úloha dokončená”Text sa vytlačí po vytlačení všetkých súborov a priečinkov aktuálneho adresára.

Záver

Tento výukový program ukazuje, ako možno príkaz „trap“ v systéme Linux použiť na vykonanie akejkoľvek automatizovanej úlohy na základe vygenerovaného signálu. Pomáha používateľom vystopovať rôzne typy chýb a vykonať správne akcie, ktoré je možné predtým priradiť pomocou tohto príkazu. Mnoho programov alebo skriptov prideľuje pri behu v systéme určité konkrétne zdroje. Ak sa ktorýkoľvek bežiaci program alebo skript neobvykle ukončí alebo ukončí, prostriedky použité týmto programom sú blokované. Na vyriešenie tohto problému možno použiť príkaz 'trap'. Úloha čistenia zdrojov sa dá ľahko vykonať pomocou tohto príkazu. Dúfam, že čitateľ získa jasnú predstavu o použití tohto príkazu po prečítaní tohto tutoriálu.

Hry Najlepšie aplikácie na mapovanie gamepadu pre Linux
Najlepšie aplikácie na mapovanie gamepadu pre Linux
Ak radi hráte hry v systéme Linux s gamepadom namiesto typického systému vstupu pre klávesnicu a myš, máte tu niekoľko užitočných aplikácií. Mnoho hie...
Hry Užitočné nástroje pre hráčov systému Linux
Užitočné nástroje pre hráčov systému Linux
Ak radi hráte hry v systéme Linux, je pravdepodobné, že ste na vylepšenie herného zážitku použili aplikácie a pomôcky ako Wine, Lutris a OBS Studio. O...
Hry HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
Mnoho vývojárov a vydavateľov hier prichádza s remastrom starých hier v rozlíšení HD, aby predĺžili životnosť franšízy. Prosím fanúšikov, ktorí požadu...