Hibal-i Kon Unsaon Paglawig sa Tapus sa Pag-gamit sa mga Bash Script

Kon Unsaon Pagtudlo ang mga Subshell nga Magamit sa Kasumpay sa Background

Ang usa ka kabhang mao ang usa ka sukaranan nga interface alang sa pagsulod sa mga sugo sa usa ka sistema sa Linux. Uban niini, mahimo ka nga mosulod direkta sa usa ka command o magtino sa usa ka file (script) nga adunay usa ka han-ay sa mga sugo nga ipatuman. Ang mga kinhason giorganisar sa usa ka hierarchy, ug ang bisan unsang kabhang makamugna og bag-ong kabhang. Ang bag-ong kabhang giisip nga usa ka proseso sa bata-usa ka subshell-sa panit sa ginikanan nga nagmugna niini.

Sa baylo, usa ka subshell ang nagsalig sa iyang ginikanan sa diwa nga kon ang proseso sa ginikanan natapos, ang terminong subsob natapos usab. Ang bisan unsang output ang gipasa gikan sa subshell ngadto sa panit sa ginikanan.

Kon Unsaon Paghimo Usa ka Subshell

Sa usa ka script sa Bash shell, imong gimugna ang usa ka subshell gamit ang notipikasyon sa paniplig:

#! / bin / bash echo "Sa wala pa magsugod subshell" (count = 1 samtang [$ count -le 99] i-echo ang "$ count" nga pagkatulog 1 ((count ++)

Sa pananglitan, ang samtang ang loop gilukip sa parenthesis, nga maoy hinungdan nga kini ipatuman sa usa ka subshell sa kabhang diin ang script file gipatuman.

Pagpadagan sa usa ka Subshell sa Background

Gawas kon imong mahibal-an nga ang subshell ipatuman sa luyo, ang panit sa ginikanan naghulat alang sa subshell nga mahuman sa wala pa ipadayon ang nahabilin nga script. Apan, kon gusto ka nga mag-agi sa mga subshell nga magkaparehas, imong gipadagan kini sa luyo, nga nahuman uban ang ampersand character nga nagsunod sa subshell nga ekspresyon, ingon sa gipakita dinhi:

#! / bin / bash echo "Sa wala pa magsugod subshell" (count = 1 samtang [$ count -le 99] ang echo "$ count" nga pagkatulog 1 ((count ++)) nahuman) & echo "Finished"

Pagpadagan sa Daghang Subshell nga Parallel

Kung maghimo ka og daghang mga subshell ingon nga mga proseso sa background, mahimo ka nga makadagan sa mga buluhaton nga susama. Kasagaran, ang operating system naggamit sa nagkalain-laing mga processor o mga core sa matag proseso ug subprocess, nga nagtuo adunay labing menos sa daghang mga processor o mga cores tungod kay adunay mga proseso. Kay kon dili, ang mga buluhaton ibutang sa sama nga mga processor o mga cores. Niana nga kaso, ang processor o core padayon nga magbag-o tali sa gitahasan nga mga buluhaton hangtud nga ang mga buluhaton nahuman. Ang sunod nga pananglitan adunay duha ka subprocesses. Ang una usa gikan sa 1 ngadto sa 99, ug ang ikaduha gikan sa 1000 ngadto sa 1099.

#! / bin / bash echo "Sa dili pa magsugod subshell" (count = 1 samtang [$ count -le 99] echo ang "$ count" nga pagkatulog 1 ((count ++) 1099] mag-echo sa "$ count" nga pagkatulog 1 ((ihap ++)) nahimo nga & & echo "Nahuman"

Gamita ang pahayag sa paghulat nga isulti sa proseso sa ginikanan aron maghulat sa mga subprocesses nga mahuman sa dili pa ipadayon ang uban nga mga script:

#! / bin / bash echo "Sa dili pa magsugod subshell" (count = 1 samtang [$ count -le 99] echo ang "$ count" nga pagkatulog 1 ((count ++) 1099] mag-echo sa "$ count" nga pagkatulog 1 ((ihap ++)) nahuman & & amp; maghulat echo "Nahuman"

Paggamit sa mga Subshell

Ang mga subshell mapuslanon kon ang mga sugo kinahanglan nga ipatuman sa usa ka partikular nga palibot o direktoryo. Kon ang matag command gipatuman sa lain nga subshell, wala'y risgo nga ang mga lain-laing mga kahimanan mahilakip. Sa pagkompleto, ang mga setting ug ang kasamtangan nga direktoryo dili kinahanglan nga ipasig-uli, tungod kay ang palibot sa proseso sa ginikanan wala maapektuhan sa bisan kinsa sa mga subprocesses niini.

Ang mga subshell mahimong magamit sa mga kahulugan sa pag-obra aron sila mahimong ipatuman sa daghang mga higayon uban sa lainlaing mga parameter.