Linux naredbe

Naredba zamke basha

Naredba zamke basha
Ugrađena bash naredba koja se koristi za izvršavanje naredbe kada ljuska primi bilo koji signal naziva se "zamka". Kada se dogodi bilo koji događaj, tada bash šalje obavijest bilo kojim signalom. Mnogi su signali dostupni u bashu. Najčešći signal basha je SIGINT (prekid signala). Kada korisnik pritisne CTRL + C da prekine bilo koji proces s terminala, tada se ovaj signal šalje da obavijesti sustav.  U ovom vodiču objašnjeno je kako možete koristiti naredbu trap za rukovanje različitim vrstama signala.

Sintaksa:

zamka [-lp] [[arg] signal_spec…]

ili

zamka [akcija] [signal]
Ključ Opis
-l Koristi se za prikaz popisa svih imena signala s odgovarajućim brojem.
-str Koristi se za prikaz naredbe signala ili naredbe zamke za signal_spec.
arg Koristi se za izvršavanje naredbe kada ljuska primi signal (e).
signal_spec Sadrži ime ili broj signala.

Trap naredba bez ikakve opcije i arg

Pokrenite sljedeću naredbu s terminala da biste prikazali popis svih naredbi povezanih sa svakim uvjetom. Ako bilo koja naredba "zamka" nije postavljena prije, sljedeća naredba neće prikazati nikakve informacije.

$ zamka

Naredba za hvatanje s opcijom -l

Pokrenite sljedeću naredbu s terminala za prikaz popisa svih imena signala s brojem.

$ zamka -l

Izlaz gornje naredbe prikazat će popis od 64 signala s brojevima.

Postavite naredbu zamke za ERR i EXIT

Sljedeća prva naredba postavit će naredbu 'zamka' koja će se izvršiti kad se dogodi bilo koja pogreška u ljusci ili izlazak iz ljuske. Ova naredba 'zamka' uklonit će se temp.txt datoteka s trenutnog mjesta. Naredba 'ls' koristi se za provjeru temp.txt datoteka postoji ili ne postoji na trenutnom mjestu. posljednje Izlaz naredba koristi se za zatvaranje terminala i izvršavanje naredbe 'trap' koja je postavljena prije.

$ zamka 'rm temp.txt 'pogrešan izlaz
$ ls
$ izlaz

Sljedeći će se izlaz pojaviti nakon pokretanja gornjih naredbi.

Ako korisnik nakon otvaranja ponovo otvori terminal i tada izvrši naredbu 'ls' temp.txt datoteka neće postojati.

Postavite naredbu "trap" s brojem signala SIGUP, SIGQUIT i SIGKILL

Broj signala POTPIS, SIGQUIT i SIGKILL su 1, 3 i 9. Sljedeća prva naredba postavit će zamku za ova tri signala. Kada se dogodi bilo koji od ovih signala, tada se prikazuje poruka „Izvodi se naredba zamke”Ispisat će.  Pokrenite sljedeću naredbu s terminala.

$ trap 'echo Izvedena naredba zamke' 1 3 9

Kada će korisnik pritisnuti Ctrl + C za generiranje dodjele signala naredbom "trap", a zatim 'jeka' naredba zamke izvršit će se naredba i pojavit će se sljedeći izlaz.

Postavite naredbu 'trap' za SIGTERM u skripti

SIGTERM signal se koristi za trenutni prekid procesa oslobađanjem njegovih resursa. Stvorite bash datoteku pod nazivom 'trapscript.sh'sa sljedećim kodom. U skripti je proglašena beskonačna petlja for koja će neprekidno ispisivati ​​tekst do SIGTERM javlja se signal. Korisnik mora pritisnuti Ctrl + Z generirati SIGTERM signal.

trapscript.sh

#!/ bin / bash
 
# Postavite zamku za signale SIGINT i SIGTERM
trap "echo Program je prekinut."SIGTERM ZNAK
 
# Prikaži poruku za generiranje SIGTERM
odjek "Pritisnite Ctrl + Z da zaustavite postupak"
 
#Initializiraj varijablu brojača, tj
i = 1
 
#declare beskonačno za petlju
za(;;)
čini
# Ispis poruke s brojačem i
echo "pokretanje petlje za $ i puta"
#Povećaj brojač za jedan
((i ++))
gotovo

Pokrenite skriptu izvršavanjem sljedeće naredbe i pritisnite Ctrl + Z za generiranje SIGTERM signal. Pojavit će se sljedeći slični rezultati.

$ bash trapscript.sh

Postavite naredbu 'trap' za pokretanje funkcije na temelju određenog signala

Naredbu 'zamka' možete povezati s bilo kojom korisnički definiranom funkcijom. Stvorite bash s imenom trapfunc.sh i dodajte sljedeću skriptu. Ovdje se naziva prilagođena funkcija func () proglašava se ispisom jednostavne poruke, "Zadatak završen". Definirana je petlja za ulazak za čitanje i ispis popisa svih datoteka i mapa trenutne radne mape. 'zamka' naredba koja je definirana na početku popisa pozvat će funkciju, func () kada se program završava.

trapfunc.sh

#!/ bin / bash
# Pozovite funkcijsku funkciju na izlazu
trap func izlaz
# Deklarirajte funkciju
funkcija func ()
 
odjek "Zadatak dovršen"

# Pročitajte datoteke i mape trenutnog popisa direktorija pomoću petlje for
jer ja u *
čini
odjek "$ i"
gotovo

Pokrenite skriptu s terminala.

Pokrenite skriptu.

$ bash trapfunc.sh

Sljedeći izlaz to pokazuje, “Zadatak završen”Tekst se ispisuje nakon ispisa svih datoteka i mapa trenutnog direktorija.

Zaključak

Ovaj vodič pokazuje kako se naredba 'trap' može koristiti u Linuxu za izvršavanje bilo kojeg automatiziranog zadatka na temelju generiranog signala. Korisnicima pomaže u pronalaženju različitih vrsta pogrešaka i poduzimanju odgovarajućih radnji koje se prije mogu dodijeliti pomoću ove naredbe. Mnogi programi ili skripte dodjeljuju neke određene resurse kada se izvode u sustavu. Ako bilo koji pokrenut program ili skripta abnormalno izađe ili se završi, resursi koje koristi taj program su blokirani. Za rješavanje ovog problema može se koristiti naredba 'trap'. Zadatak čišćenja resursa može se jednostavno izvršiti pomoću ove naredbe. Nadam se da će čitatelj dobiti jasnu ideju o upotrebi ove naredbe nakon čitanja ovog vodiča.

Najbolji emulatori igraće konzole za Linux
Ovaj će članak navesti popularni softver za emulaciju igraće konzole dostupan za Linux. Emulacija je sloj kompatibilnosti softvera koji oponaša hardve...
Najbolji Linux Distros za igre na sreću 2021. godine
Linux operativni sustav daleko je prevalio svoj izvorni, jednostavni izgled zasnovan na poslužitelju. Ovaj se OS posljednjih godina izuzetno poboljšao...
Kako snimiti i struji svoju igraću sesiju na Linuxu
U prošlosti se igranje igara smatralo samo hobijem, ali s vremenom je igračka industrija zabilježila ogroman rast u pogledu tehnologije i broja igrača...