Jifunze Jinsi ya Kuendesha Vipengele Vyema Kwa kutumia Bash Scripts

Jinsi ya kufundisha Subshells kuendesha katika Sambamba katika Background

Ganda ni interface ya msingi ya kuingia amri kwenye mfumo wa Linux. Kwa hiyo, unaweza kuagiza amri moja kwa moja au kubainisha faili (script) ambayo ina mlolongo wa amri zinazopaswa kutekelezwa. Shells hupangwa katika uongozi, na shell yoyote inaweza kuunda shell mpya. Kichwa kipya kinachukuliwa kama mchakato wa mtoto-kifungu kidogo-cha shell ya mzazi inayojenga.

Kwa default, subshell inategemea mzazi wake kwa maana kwamba ikiwa mchakato wa wazazi hukoma, subshell pia imekoma. Pato lolote linapitishwa kutoka kwenye kichwa cha chini hadi kwenye mfuko wa mzazi.

Jinsi ya Kujenga Subshell

Katika script ya shell ya Bash, unaunda somo kwa kutumia notation ya kizazi:

#! / bin / bash echo "Kabla ya kuanzia chini" (hesabu = 1 wakati [$ count-99] soma "$ count" usingizi 1 ((hesabu ++)) imefanya "kumaliza"

Kwa mfano, kitanzi hiki kinajumuishwa kwa wazazi, ambayo husababisha itafanywe katika sehemu ndogo ya shell ambayo faili ya script inafanywa.

Running Subshell katika Background

Isipokuwa utafafanua kwamba kifungu hicho kinapaswa kutekelezwa nyuma, kipaza cha wazazi kinaisubiri kifungu cha kumaliza kabla ya kuendelea na script yote. Hata hivyo, ikiwa unataka kukimbia vifungo sambamba, unawaendesha nyuma, ambayo inafanywa na tabia ya ampersand ifuatayo maneno ya chini, kama inavyoonyeshwa hapa:

#! / bin / bash echo "Kabla ya kuanzia chini" (hesabu = 1 wakati [$ count-99] tumia "$ count" usingizi 1 ((hesabu ++)) & echo "Imekamilishwa"

Running Subshells nyingi katika Sambamba

Ikiwa unaunda vichwa vingi kama michakato ya historia, unaweza kuendesha kazi kwa sambamba. Kwa kawaida, mfumo wa uendeshaji hutumia wasindikaji tofauti au vidole kwa kila mchakato na subprocess, kudhani kuna wasindikaji angalau kama wengi kuna taratibu. Vinginevyo, kazi zinawasilishwa kwa wasindikaji sawa au vidonda. Katika hali hiyo, processor au msingi inachukua kati ya kazi zilizowekwa mpaka kazi zimekamilishwa. Mfano unaofuata una mafanikio mawili. Ya kwanza inahesabu kutoka 1 hadi 99, na ya pili kutoka 1000 hadi 1099.

#! / bin / bash echo "Kabla ya kuanzia chini" (hesabu = 1 wakati [$ count -le 99] onyesho "$ count" usingizi 1 ((hesabu ++)) & (count = 1000 wakati [$ count -le 1099] onyesha usingizi wa "$ count" 1 ((kuhesabu + +)) na echo "Imekamilishwa"

Tumia tamko la kusubiri ili ueleze mchakato wa wazazi kusubiri subprocesses kumaliza kabla ya kuendelea na script yote:

#! / bin / bash echo "Kabla ya kuanzia chini" (hesabu = 1 wakati [$ count -le 99] onyesho "$ count" usingizi 1 ((hesabu ++)) & (count = 1000 wakati [$ count -le 1099] onyesho "usingizi wa $" usingizi 1 ((uhesabu + +)) ufanyike) na usubiri echo "Imekamilishwa"

Matumizi ya Subshells

Subshells ni muhimu wakati amri zinahitajika kutekelezwa katika mazingira fulani au saraka. Ikiwa kila amri inafanywa katika sehemu ndogo, hakuna hatari kwamba mipangilio ya kutofautiana itachanganywa. Baada ya kukamilika, mipangilio na saraka ya sasa haipaswi kurejeshwa, kama mazingira ya mchakato wa mzazi hayakuathiriwa na yoyote ya mafanikio yake.

Subshells zinaweza kutumika katika ufafanuzi wa kazi ili waweze kufanywa mara nyingi na vigezo tofauti.