Linux parancsok

Bash csapda parancs

Bash csapda parancs
A beépített bash parancsot, amelyet egy parancs végrehajtására használnak, amikor a shell bármilyen jelet kap, csapdának hívják. Ha bármilyen esemény bekövetkezik, a bash bármilyen jelzéssel elküldi az értesítést. Sok jel elérhető bash-ban. A bash leggyakoribb jele a SIGINT (Signal Interrupt). Amikor a felhasználó megnyomja a CTRL + C billentyűkombinációt, hogy bármilyen folyamatot megszakítson a terminálról, akkor ezt a jelet küldi a rendszer értesítésére.  Az oktatóanyag elmagyarázza, hogyan használhatja a trap parancsot a különböző típusú jelek kezelésére.

Szintaxis:

csapda [-lp] [[arg] jel_spec ...]

vagy

csapda [akció] [jel]
Kulcs Leírás
-l Arra szolgál, hogy megjelenítse az összes jelnév listáját a megfelelő számmal.
-o A signal_spec jelparancs vagy trap parancs megjelenítésére szolgál.
arg Parancs végrehajtására szolgál, amikor a shell megkapja a jeleket.
jel_spec Ez tartalmazza a jel nevét vagy a jel számát.

Trap parancs minden opció nélkül és arg

Futtassa a következő parancsot a terminálról az egyes feltételekhez társított összes parancs listájának megjelenítéséhez. Ha korábban nincs beállítva valamelyik „trap” parancs, akkor a következő parancs nem jelenít meg információkat.

$ csapda

Trap parancs -l opcióval

Futtassa a következő parancsot a terminálról az összes szignálnév listájának megjelenítéséhez.

$ csapda -l

A fenti parancs kimenetén megjelenik a 64 számot tartalmazó jelek listája.

Állítsa be a trap parancsot az ERR és az EXIT számára

A következő első parancs egy 'trap' parancsot állít be, amely akkor fog végrehajtódni, ha bármilyen shell hiba jelentkezik, vagy ha a shell kilép. Ez a 'trap' parancs eltávolítja temp.txt fájlt az aktuális helyről. Az 'ls' paranccsal ellenőrizhetjük a temp.txt fájl létezik vagy nincs az aktuális helyen. Végül kijárat paranccsal lehet bezárni a terminált és végrehajtani a korábban beállított 'trap' parancsot.

$ trap 'rm temp.txt 'tévedés kilépés
$ ls
$ exit

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Most, ha a felhasználó kilépés után újra megnyitja a terminált, és végrehajtja az 'ls' parancsot temp.txt fájl nem létezik.

Állítsa be a „trap” parancsot a SIGUP, SIGQUIT és SIGKILL jelszámmal

A jel száma SIGUP, SIGQUIT és SIGKILL 1, 3 és 9. A következő első parancs csapdát állít ehhez a három jelhez. Amikor ezek közül bármelyik jel bekövetkezik, a „A Trap parancs végrehajtásra kerül”Kinyomtatja.  Futtassa a következő parancsot a terminálról.

$ trap 'echo Trap parancs végrehajtva' 1 3 9

Mikor nyomja meg a felhasználó Ctrl + C hogy létrehozza a jel hozzárendelését 'trap' paranccsal, akkor a 'visszhang' parancs a trap parancs végrehajtásra kerül, és a következő kimenet jelenik meg.

Állítsa be a 'trap' parancsot a SIGTERM számára egy szkriptben

SIGTERM jel a folyamat azonnali befejezésére szolgál az erőforrások felszabadításával. Hozzon létre egy bash fájlt, amelynek neve:csapda.SH"a következő kóddal. Végtelen ciklusra van deklarálva a szkriptben, amely folyamatosan nyomtat szöveget SIGTERM jel fordul elő. A felhasználónak meg kell nyomnia Ctrl + Z generálni SIGTERM jel.

csapda.SH

#!/ bin / bash
 
# Állítson be csapdát a SIGINT és SIGTERM jelekhez
trap "echo A program leáll.Msgstr "SIGTERM JEL
 
#Display üzenet a SIGTERM előállításához
echo "Nyomja meg a Ctrl + Z gombot a folyamat leállításához"
 
# Inicializálja a számlálóváltozót, azaz
i = 1
 
#declare végtelen a ciklushoz
for (;;)
csinálni
# Üzenet nyomtatása számlálóval i
echo „a ciklus futása $ i-szer”
# A számláló beillesztése egyenként
((i ++))
Kész

Futtassa a szkriptet a következő parancs végrehajtásával, és a létrehozáshoz nyomja meg a Ctrl + Z billentyűkombinációt SIGTERM jel. A következő hasonló kimenet jelenik meg.

$ bash csapda.SH

Állítson be egy „trap” parancsot egy adott jel alapján történő függvény futtatásához

A 'trap' parancsot bármely felhasználó által definiált funkcióhoz társíthatja. Hozzon létre egy bash nevet trapfunc.SH és adja hozzá a következő szkriptet. Itt egy egyedi nevű függvény func () kijelentette, hogy egyszerű üzenetet nyomtat, "Feladat teljesítve". A bejövő hurok meghatározza az aktuális munkakönyv összes fájljának és mappájának listáját. 'csapda' A lista elején definiált parancs meghívja a függvényt, func () amikor a program leáll.

trapfunc.SH

#!/ bin / bash
# Kilépéskor hívja a func funkciót
csapda func kijárat
# Nyújtsa be a függvényt
függvény func ()
 
visszhang "Feladat befejezve"

# Olvassa el az aktuális könyvtárlista fájljait és mappáit a ciklus használatával
mert én vagyok *
csinálni
"$ i" visszhang
Kész

Futtassa a parancsfájlt a terminálról.

Futtassa a szkriptet.

$ bash trapfunc.SH

A következő kimenet azt mutatja, "Feladat teljesítve”Szöveget az aktuális könyvtár összes fájljának és mappájának kinyomtatása után kinyomtatják.

Következtetés

Ez az oktatóanyag bemutatja, hogyan lehet a „trap” parancsot használni a Linuxban bármilyen automatizált feladat végrehajtására generált jel alapján. Segít a felhasználóknak a különféle típusú hibák felkutatásában, és a parancs használatával megfelelő műveletek meghozatalában, amelyeket korábban meg lehet rendelni. Számos program vagy szkript rendel bizonyos forrásokat, amikor a rendszerben fut. Ha bármely futó program vagy szkript rendellenesen kilép vagy leáll, akkor az adott program által használt erőforrások blokkolva vannak. A 'trap' paranccsal megoldható ez a probléma. Az erőforrás-tisztítási feladat egyszerűen elvégezhető ezzel a paranccsal. Remélem, az olvasó világos képet kap a parancs használatáról, miután elolvasta ezt az oktatóanyagot.

Az egérmutató és a kurzor méretének, színének és sémájának módosítása a Windows 10 rendszeren
Az egérmutató és a kurzor a Windows 10 operációs rendszerben nagyon fontos szempont. Ez elmondható más operációs rendszerekről is, tehát valójában eze...
Ingyenes és nyílt forráskódú játékmotorok a Linux játékok fejlesztéséhez
Ez a cikk felsorolja azokat az ingyenes és nyílt forráskódú játékmotorokat, amelyek felhasználhatók 2D és 3D játékok fejlesztésére Linuxon. Számos ily...
Shadow of the Tomb Raider for Linux Tutorial
A Shadow of the Tomb Raider a Tomb Raider sorozat tizenkettedik kiegészítője - az Eidos Montreal által létrehozott akció-kaland játék franchise. A ját...