Funda indlela yokusebenzisa kakuhle ii-Subshells usebenzisa i-Bash Scripts

Indlela yokufundisa ii-Subshells ukuba ziqhube kwi-Parallel kwi-Background

Igobolondo yinkqubo ebalulekileyo yokufaka imiyalelo kwinkqubo ye Linux. Ngaloo nto, ungangena umyalelo ngokuthe ngqo okanye ucacise ifayile (iskripthi) esineenkcukacha ezilandelelanayo. Iikhonkco zihlelwe kwi-hierarchy, kwaye nayiphi na igobolondo inokudala igobolondo entsha. Igobolondo entsha ithathwa njengenkqubo yomntwana-i-subshell-yecobolki yomzali eyenza yona.

Ngokungagqibekanga, i-subshell ixhomekeka kumzali wayo ngendlela yokuba inkqubo yomzali iphelile, i-subshell iphela. Nasiphi na isiphumo sidluliselwa kwi-subshell ukuya kwikhotile yomzali.

Indlela yokudala i-Subshell

Kwisikripthi seBash shell, udala i-subshell usebenzisa i-notation yabazali:

I-#! / bin / bash echo "Ngaphambi kokuba uqalise i-subshell" (count = 1 ngelixa i-$ count -le 99] yenza i-"count count" ((count ++)) yenza "iphelile"

Kulo mzekelo, i- loop yexesha ivalwe kwi-parenthesis, nto leyo eyenza ukuba iqhutywe kwi-subshell yegobolondo apho ifayile yeskripthi iyenziwa.

Ukuqhubela i-Subshell kwimvelaphi

Ngaphandle kokuba ucacise ukuba i-subshell iya kuqhutyelwa ngasemva, igoboloni yomzali ilindela ukuba i-subshell iqede ngaphambi kokuba uqhubeke kunye nesinye script. Nangona kunjalo, ukuba ufuna ukuqhuba ii-subshells ngokufanayo, uzigijimela ngasemuva, ofezwa ngumbonakalo we-ampersand emva kwesalathisi se-subshell, njengoko kuboniswe apha:

I-#! / bin / bash echo "Ngaphambi kokuba uqalise i-subshell" (count = 1 ngelixa i-$ count -le 99] yenza i-"count count" ((count ++)) yenza "

Ukuqhuba ii-Subshells ezininzi kwi-Parallel

Ukuba wenza ii-subshells ezininzi njengeenkqubo zangasemva, unokuqhuba imisebenzi ngokufanayo. Ngokuqhelekileyo, inkqubo yokusebenzisa isebenzisa iinkqubo ezahlukeneyo okanye iinkqubo ezahlukeneyo kwinkqubo nganye kunye neproprocess, kucinga ukuba kukho ubuncinci abaprojekthi okanye iipresenti njengoko kukho iinkqubo. Ngaphandle koko, imisebenzi yabelwe kwiprosesa efanayo okanye iifutha. Kwimeko apho, umprosesa okanye umnqweno uqhubeka uguqule phakathi kwemisebenzi eyabelwe ukuze imisebenzi izaliswe. Umzekelo olandelayo unemiqathango emibini. Iyokuqala ibalwa ukusuka ku-1 ukuya ku-99, kwaye yesibini ukusuka kwi-1000 ukuya ku-1099.

I-#! / bin / bash echo "Ngaphambi kokuba uqalise i-subshell" (count = 1 ngelixa i-$ count -le 99] yenza i-"count count" ((count ++)) kunye & (count = 1000 ngelixa i-$ count 1099] yenza i-"count count" (u-+ +++)) kunye ne-echo "Uphelile"

Sebenzisa isitatimende sokulinda uxelele inkqubo yomzali ukulinda i-subprocesses ukugqiba ngaphambi kokuba uqhubeke nalo lonke uxwebhu:

I-#! / bin / bash echo "Ngaphambi kokuba uqalise i-subshell" (count = 1 ngelixa i-$ count -le 99] yenza i-"count count" ((count ++)) kunye & (count = 1000 ngelixa i-$ count I-1099] yenza i-"count count" ((count +++) yenzeke) & ulinde u-echo "Uphelile"

Ukusetyenziswa kwee-Subshells

Iifomsi ziyanceda xa iimfuneko kufuneka zenziwe kwimeko ethile okanye ulawulo. Ukuba umyalelo ngamnye uyenziwa kwi-subshell eyahlukileyo, akukho mngcipheko wokuthi izicwangciso eziguquguqukileyo ziya kuxutyushwa. Ekugqityweni, izicwangciso kunye nerekhoda zangoku akudingeki ukuba zibuyiselwe, njengoko umgangatho womgaqo womzali awuchaphazelekayo nayiphi na iproprocesses yayo.

Iifomsi zingasetyenziselwa iinkcazo zomsebenzi ukuze zenzeke ngamaxesha amaninzi ngeeparitha ezahlukeneyo.