Funda indlela yokusebenzisa kahle ama-Subshells usebenzisa ama-Bash Scripts

Indlela Yokufundisa Ama-Subshells Ukuqalisa Ngokwemvelo Ngemuva

Igobolondo yisixhumanisi esibalulekile sokufaka imiyalo kuhlelo lwe-Linux. Ngalo, ungangena umyalo ngqo noma ucacise ifayela (iskripthi) equkethe ukulandelana kwemilayezo okufanele yenziwe. Ama-Shells ahlelwe esigabeni sobukhosi, futhi noma iyiphi igobolondo ingadala igobolondo elisha. Igobolondo elisha libhekwa njengenqubo yengane-i-subshell-yegobolondo lomzali eliyidala.

Ngokuzenzakalelayo, i-subshell incike kumzali wayo ngomqondo wokuthi uma inqubo yomzali iphelile, i-subshell iphinda iphele. Noma yikuphi okukhiphayo kudluliselwa kusuka kwesigcawu kuya kwigobolondo lomzali.

Indlela Yokwakha I-Subshell

Esikhathini script se-shell yeBash, udala i-subshell usebenzisa isaziso se-parenthesis:

#! / bin / bash echo "Ngaphambi kokuthi uqalise i-subshell" (count = 1 ngenkathi [$ count -le 99] beka u-"$ count" 1 ((count ++)) yenza "uphelile"

Esikhathini isibonelo, i- loop ngenkathi ihlanganisiwe kubangani, okubangela ukuba kusetshenziswe ku-subshell yegobolondo lapho ifayela le-script lenziwa khona.

Ukuqalisa i-Subshell kusemuva

Ngaphandle kokuthi ucacise ukuthi i-subshell izokwenziwa ngemuva, igobolondo lomzali lilindele ukuthi lesi sihloko siqede ngaphambi kokuqhubeka nesinye script. Kodwa-ke, uma ufuna ukusebenzisa ama-subshells ngokufana, uwagijima ngemuva, ofezwa ngunhlamvu we-ampersand elandela inkulumo engezansi, njengoba kuboniswe lapha:

#! / bin / bash echo "Ngaphambi kokuthi uqalise i-subshell" (count = 1 ngenkathi [$ count -le 99] beka u-"$ count" ukulala 1 ((count ++)) kwenziwe futhi uphendule "Uphelile"

Ukuqalisa ama-Subshells amaningi ku-Parallel

Uma udala ama-subshells amaningi njengezinqubo zangemuva, ungasebenzisa imisebenzi ngokufana. Ngokuvamile, uhlelo lokusebenza lusebenzisa amaprosesa ahlukene noma ama-cores ngenqubo ngayinye nangaphansi kwe-subprocess, ecabanga ukuthi kunamaprosesa noma ama-cores amaningi kakhulu njengoba kunezinqubo. Uma kungenjalo, imisebenzi inikezwa kumaprosesa noma ama-cores afanayo. Uma kunjalo, iprosesa noma ingqikithi ishintsha ngokuqhubekayo phakathi kwemisebenzi eyabelwe kuze kube yilapho imisebenzi iphelile. Isibonelo esilandelayo sinama-subprocesses amabili. Owokuqala ubala kusuka ku-1 kuya ku-99, futhi owesibili kusuka ku-1000 kuya ku-1099.

#! / bin / bash echo "Ngaphambi kokuthi uqalise i-subshell" (count = 1 ngenkathi [$ count -le 99] beka ukulala "$ count" 1 ((count ++)) & (count = 1000 ngenkathi [$ count -le 1099] yenza u-sleeping "$ count" 1 ((count ++)) okwenziwe) bese u-echo "Uphelile"

Sebenzisa isitatimende sokulinda ukutshela inqubo yomzali ukulinda ama-subprocesses ukuqedela ngaphambi kokuqhubeka nalo lonke umbhalo:

#! / bin / bash echo "Ngaphambi kokuthi uqalise i-subshell" (count = 1 ngenkathi [$ count -le 99] beka ukulala "$ count" 1 ((count ++)) & (count = 1000 ngenkathi [$ count -le 1099] yenza ukulala "$ count" 1 ((count ++)) eyenziwe) & ulinde i-echo "Iphelile"

Ukusebenzisa ama-Subshells

Ama-subshells ayasiza lapho imiyalo idinga ukukwenziwa endaweni ethile noma isiqondisi. Uma umyalo ngamunye ukwenziwa kwesigatshana esingaphansi, akunabungozi ukuthi izilungiselelo eziguquguqukayo zizoxubaniswa. Ekuqedeni, izilungiselelo kanye nencwadi yamanje akudingeki ukuthi ibuyiselwe, njengoba imvelo yenqubo yomzali ingathinteki nanoma yimaphi ama-subprocesses ayo.

Ama-Subshells angasetshenziswa ezinchazeni zomsebenzi ukuze akwazi ukubulawa izikhathi eziningi ngezigaba ezahlukene.