„Linux“ komandos

Bash spąstų komanda

Bash spąstų komanda
Įtaisyta „bash“ komanda, naudojama komandai vykdyti, kai apvalkalas gauna bet kokį signalą, vadinama „spąstais“. Įvykus bet kokiam įvykiui, bashas siunčia pranešimą bet kokiu signalu. Daugybė signalų yra bash. Dažniausias „bash“ signalas yra „SIGINT“ (signalo pertraukimas). Kai vartotojas paspaudžia CTRL + C ir nutraukia bet kokį procesą iš terminalo, šis signalas siunčiamas pranešti sistemai.  Kaip naudotis spąstų komanda skirtingų tipų signalams valdyti, paaiškinta šioje pamokoje.

Sintaksė:

gaudyklė [-lp] [[arg] signalo_spec ...]

arba

spąstai [veiksmas] [signalas]
Raktas apibūdinimas
-l Jis naudojamas rodyti visų signalų pavadinimų sąrašą su atitinkamu numeriu.
-p Jis naudojamas norint parodyti signalo komandą arba spąstų komandą signal_spec.
arg Jis naudojamas komandai vykdyti, kai apvalkalas gauna signalą (-us).
signalo_spec Jame yra signalo pavadinimas arba signalo numeris.

Spąstų komanda be jokių parinkčių ir arg

Paleiskite šią komandą iš terminalo, kad būtų rodomas visų komandų, susijusių su kiekviena sąlyga, sąrašas. Jei anksčiau nebuvo nustatyta „trap“ komanda, ši komanda nerodys jokios informacijos.

$ spąstai

Spąstų komanda su -l parinktimi

Paleiskite šią komandą iš terminalo, kad būtų parodytas visų signalų pavadinimų su skaičiumi sąrašas.

$ spąstai -l

Minėtos komandos išvestis parodys 64 signalų su skaičiais sąrašą.

Nustatykite ERR ir EXIT spąstų komandą

Ši pirmoji komanda nustatys komandą „trap“, kuri bus vykdoma įvykus bet kokiai apvalkalo klaidai arba išėjus iš apvalkalo. Ši komanda „spąstai“ bus pašalinta temp.txt failą iš dabartinės vietos. "ls" komanda naudojama norint patikrinti temp.txt failas yra arba nėra dabartinėje vietoje. Galiausiai išėjimas komanda naudojama norint uždaryti terminalą ir įvykdyti anksčiau nustatytą komandą „trap“.

$ trap 'rm temp.txt 'klaida išeiti
$ ls
$ išėjimas

Paleidus minėtas komandas pasirodys toks išvestis.

Dabar, jei vartotojas dar kartą atidaro terminalą po išėjimo ir vykdo komandą „ls“ temp.txt failo nebus.

Nustatykite komandą „trap“ su signalo numeriu SIGUP, SIGQUIT ir SIGKILL

Signalo numeris SIGUP, SIGQUIT ir SIGKILL yra 1, 3 ir 9. Ši pirmoji komanda nustatys šių trijų signalų spąstus. Kai atsiras bet kuris iš šių signalų, pranešimas „Vykdoma spąstų komanda“Atspausdins.  Paleiskite šią komandą iš terminalo.

$ trap 'echo Trap komanda įvykdyta' 1 3 9

Kada vartotojas paspaus „Ctrl“ + C generuoti signalo priskyrimą „trap“ komanda, tada „aidas“ komanda „trap“ vykdys komandą ir pasirodys toks išvestis.

Scenarijuje nustatykite komandą „trap“ SIGTERM

SIGTERMAS signalas naudojamas nedelsiant nutraukti procesą išlaisvinant jo išteklius. Sukurkite „bash“ failą pavadinimu „trapscript.sh"su tokiu kodu. Begalinis ciklas yra paskelbtas scenarijuje, kuris nuolat spausdins tekstą iki SIGTERMAS atsiranda signalas. Vartotojas turi paspausti „Ctrl“ + Z generuoti SIGTERMAS signalas.

trapscript.sh

#!/ bin / bash
 
# Nustatykite SIGINT ir SIGTERM signalų gaudyklę
spąstų aidas Programa nutraukiama."SIGTERM SIGINT
 
#Display pranešimas, kad sugeneruotumėte SIGTERM
echo "Paspauskite Ctrl + Z sustabdyti procesą"
 
# Inicializuokite skaitiklio kintamąjį, t
i = 1
 
#declare begalinis už kilpą
dėl(;;)
padaryti
#Spausdinti pranešimą su skaitikliu i
aidas „ciklo vykdymas $ i kartus“
#Inkreto skaitiklis po vieną
((i ++))
padaryta

Paleiskite scenarijų vykdydami šią komandą ir paspauskite Ctrl + Z, kad sugeneruotumėte SIGTERMAS signalas. Bus rodoma tokia panaši išvestis.

$ bash užrašas.sh

Norėdami paleisti funkciją pagal konkretų signalą, nustatykite komandą „trap“

Komandą „trap“ galite susieti su bet kuria vartotojo apibrėžta funkcija. Sukurkite bash pavadinimu trapfunc.sh ir pridėkite šį scenarijų. Čia pasirinkta funkcija pavadinta func () deklaruojama spausdinti paprastą pranešimą, „Užduotis baigta“. „For-in“ kilpa yra skirta skaityti ir atsispausdinti visų dabartinio darbo katalogo failų ir aplankų sąrašą. „spąstai“ komanda, apibrėžta sąrašo pradžioje, iškvies funkciją, func () kai programa baigsis.

trapfunc.sh

#!/ bin / bash
# Išeidami skambinkite „func“ funkcija
spąstai func išėjimas
# Paskelbkite funkciją
funkcija func ()
 
aidas „Užduotis baigta“

# Perskaitykite dabartinio katalogų sąrašo failus ir aplankus naudodami ciklą
už aš *
padaryti
aidas „$ i“
padaryta

Paleiskite scenarijų iš terminalo.

Paleiskite scenarijų.

$ bash trapfunc.sh

Šis išvestis rodo, kad, „Užduotis atlikta“Tekstas spausdinamas išspausdinus visus dabartinio katalogo failus ir aplankus.

Išvada

Ši pamoka parodo, kaip „trap“ komandą galima naudoti sistemoje „Linux“ atliekant bet kokią automatinę užduotį, pagrįstą sugeneruotu signalu. Tai padeda vartotojams atsekti įvairių tipų klaidas ir tinkamai atlikti veiksmus, kuriuos galima priskirti anksčiau naudojant šią komandą. Daugelis programų ar scenarijų, vykdydami sistemą, paskirsto tam tikrus išteklius. Jei kuri nors vykdoma programa ar scenarijus išeina arba nutrūksta neįprastai, tos programos naudojami ištekliai blokuojami. Šiai problemai išspręsti gali būti naudojama komanda „trap“. Išteklių valymo užduotį galima lengvai atlikti naudojant šią komandą. Tikiuosi, skaitytojas, perskaitęs šią pamoką, gaus aiškų supratimą apie šios komandos naudojimą.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...
„Microsoft Sculpt Touch“ belaidžio pelės apžvalga
Neseniai skaičiau apie „Microsoft Sculpt Touch“ belaidę pelę ir nusprendė ją nusipirkti. Kurį laiką naudojęs, nusprendžiau pasidalinti savo patirtimi....