Ismerje meg, hogyan kell megfelelően kezelni a csomópontokat a Bash parancsfájlok használatával

Hogyan utasítsuk fel a Subshelleket párhuzamosan a háttérben

A shell egy alapfelület a parancsok Linux rendszerbe történő beírásához. Ezzel közvetlenül megadhatja a parancsot, vagy megadhatja a végrehajtható parancssorozatot tartalmazó fájlt (szkriptet). A shell-ek hierarchiában vannak rendezve, és minden shell létrehozhat egy új shell-ot. Az új héj úgy tekinthető gyermekprocesszusnak - amely a szülői héj alapját képezi - létrehozza.

Alapértelmezés szerint a subshell annak szülőjétől függ, abban az értelemben, hogy ha a szülõprocesszió megszûnik, akkor a subshell is megszûnik. Bármely kimenetet a subshell-ből a szülői héjra továbbítanak.

Hogyan lehet létrehozni egy Subshell-et?

A Bash shell parancsfájlban a zárójeles jelölés használatával létrejön egy alsó rész:

#! / bin / bash echo "A subshell indítása előtt" (count = 1, míg [$ count -le 99] echo "$ count" sleep 1 ((count ++)

A példában az időt jelző hurok zárójelbe van zárva, ami a parancsfájl végrehajtási parancsértelmezőjének alsó részében fut.

Subshell futtatása a háttérben

Hacsak nem adja meg, hogy a háttérfájl végrehajtása a háttérben történik, a szülői héj vár a befejezés befejezésére, mielőtt folytatná a szkript többi részét. Azonban ha párhuzamosan futó alátéteket akarsz futtatni, akkor a háttérben futtatod azokat, amelyek a subshell kifejezést követő karakterekkel és karakterekkel érhetők el, amint az itt látható:

#! / bin / bash echo "A subshell indítása előtt" (count = 1, míg [$ count -le 99] echo "$ count" alvás 1 ((count ++)) kész)

Párhuzamos párhuzamos lebonyolítások futtatása

Ha több háttér algoritmust hoz létre háttérfolyamatokként, párhuzamosan futtathatja a feladatokat. Általában az operációs rendszer különböző processzorokat vagy magokat használ az egyes folyamatokhoz és alfolyamatokhoz, feltételezve, hogy legalább annyi processzor vagy mag van, mint amilyenek a folyamatok. Ellenkező esetben a feladatok ugyanazon processzorokhoz vagy magokhoz vannak hozzárendelve. Ebben az esetben a processzor vagy mag folyamatosan vált a kijelölt feladatok között a feladatok befejezéséig. A következő példa két alprocesszussal rendelkezik. Az első szám 1-től 99-ig, a második pedig 1000-től 1099-ig terjed.

#! / bin / bash echo "A subshell indítása előtt" (count = 1, miközben [$ count -le 99] echo "$ count" alvás 1 ((count ++)) kész (& count = 1000, [$ count -le 1099] echo "$ count" alvás 1 ((count ++)) kész) & visszhang "kész"

A várakozó nyilatkozat segítségével mondja meg a szülőfolyamatnak, hogy várjon az alfolyamatok befejezéséig, mielőtt folytatná a szkript többi részét:

#! / bin / bash echo "A subshell indítása előtt" (count = 1, miközben [$ count -le 99] echo "$ count" alvás 1 ((count ++)) kész (& count = 1000, [$ count -le 1099] echo "$ count" alvás 1 ((count ++)) kész) és várakozás echo "kész"

Alkalmazások Subshells számára

A Subshell-ek akkor hasznosak, ha parancsokat kell végrehajtani egy adott környezetben vagy könyvtárban. Ha mindegyik parancs más algoritmuson fut, akkor nincs kockázata annak, hogy a változó beállítások összekeverednek. Befejezésképp a beállításokat és az aktuális könyvtárat nem kell visszaállítani, mivel a szülőfolyamat környezetét egyik alfolyamathoz sem érinti.

A Subshell-eket a függvénydefiníciókban használhatják úgy, hogy többször is végrehajthatók különböző paraméterekkel.