Туура Run Subshells Баш Scripts колдонуу үчүн кантип үйрөнсөк

Аркасында жарыш иштөөгө Subshells чыкпоого кантип

Бир катмар бир Linux системасын буйруктарды киргизүү үчүн негизги колдонмо болуп саналат. Анын жардамы менен, сиз түздөн-түз буйрук же буйругу менен бир катар кылмыштары үчүн өлүм жазасына камтыган билэни (жазма) көрсөтүүгө болот. Үлүл Иерархия уюштурулган, ал эми ар бир орбитанын бир жаңы жер кыртышын түзө аласыз. жаңы катмар жараткан баланын иш-Ата-subshell-жылдын номиналдык болуп эсептелет.

Алыдын ала, ата-эне жараяны токтотсо, subshell да токтотулат деп subshell мааниде, анын ата-энесинин көз каранды болуп саналат. Ар бир ата-эне чыгуу кабыгына subshell өттү.

бир Subshell кантип түзүү керек

Бир Баш номиналдык ариби менен, сиз кашаа белгисин колдонуу менен subshell түзүү:

#! / Бин / Баш Эхо "subshell башталганга чейин" (= 1, ал эми [$ -le 99 саны] "$ саны" уйку кайталоого болот саны 1 ((саны ++)) кылган) Эхо "Даяр"

Мисалы, ал эми укурук ал бирөө өлүм жазасына жаткан орбитада бир subshell-жылы өлүм жазасына тартууга себеп болгон, кашаанын ичинде тиркелет.

Аркасында бир Subshell Running

Сиз subshell алкагында ишке ашырылуучу деп башкача каралбаса, ата-орбитанын subshell ариби менен бирге мурда аягына чейин күтөт. Бирок, сиз катар subshells чуркап келсе, бул жерден көрүнүп тургандай, subshell сөз төмөнкү амперсанд мүнөз менен ишке тек-жайы, аларды Нускасы:

#! / Бин / Баш Эхо "subshell башталганга чейин" (саны = 1, ал эми [$ -le 99 саны] "$ саны" уйку кайталоого эмне 1 ((саны ++)) кылган) & кошулушат "Даяр"

Running Ошону менен катар бир нече Subshells

Эгер кошумча катары бир нече subshells түзүп келсе, жол , сиз катар тапшырмаларды иштете аласыз. Адатта, долбоорлоо бар, жок дегенде көп иштетүүгө же Са катары бар кекирейген иштетүү системасы, ар бир жол жана subprocess үчүн ар кандай кайра иштеп же ядрону колдонот. Болбосо, милдеттери ошол эле кайра иштетүүчүлөр же кесилиштериндеги жүктөлгөн. Мындай учурда, иштеп же негизги тынымсыз милдеттери бүткөнгө чейин, жүктөлгөн милдеттерди ортосунда жандырылат. кийинки мисал эки subprocesses бар. Биринчи 1ден 99 чейин алынат, ал эми 1000-жылдан 1099 экинчи бир.

#! / Бин / Баш Эхо "subshell башталганга чейин" (= 1, ал эми [$ -le 99 саны] "$ саны" уйку кайталоого эмне саны 1 ((саны ++)) кылган) & (саны = 1000, ал эми [$ саны -le 1099] "$ санап" уктап кошулушат (1 (саны ++)) кылган) & кошулушат эмне "Даяр"

Колдонуу күтүү subprocesses ариби менен бирге аллы аягына чейин күтүп, ата-жобосун айтып арыз:

#! / Бин / Баш Эхо "subshell башталганга чейин" (= 1, ал эми [$ -le 99 саны] "$ саны" уйку кайталоого эмне саны 1 ((саны ++)) кылган) & (саны = 1000, ал эми [$ саны -le 1099] "$ санап" уктап 1 ((саны ++)) Эмесе, эмне кылган) Эхо "Даяр" & күтүп

Subshells үчүн пайдалануу

буйруулар, белгилүү бир чөйрөдө же каталог ишке ашырылуучу керек болгондо Subshells пайдалуу. Ар бир команда башка subshell аткарылган болсо, өзгөрүлмө орнотуулары аралашып турган эч кандай коркунучу жок. аяктагандан кийин, орнотуулар жана учурдагы каталог ата-жобосун чөйрө анын subprocesses эч кандай тиешеси жок деп, кайра калыбына келтирилиши керек эмес.

Subshells пайдаланылышы мүмкүн милдети аныктамалар , алар ар кандай параметрлер менен бир нече жолу аткарылат деп.