Dysgwch Sut i Ddefnyddio Rheolau Presennol yn Ddiogel Gan ddefnyddio Sgriptiau Bash

Sut i Gyfarwyddo Is-gysgodion i Redeg yn Gyfochrog yn y Cefndir

Mae gragen yn rhyngwyneb sylfaenol ar gyfer cychwyn gorchmynion ar system Linux. Gyda hi, gallwch chi nodi gorchymyn yn uniongyrchol neu bennu ffeil (sgript) sy'n cynnwys dilyniant o orchmynion i'w gweithredu. Trefnir cregyn mewn hierarchaeth, ac mae unrhyw gragen yn gallu creu gragen newydd. Ystyrir bod y gragen newydd yn broses blentyn - yn isgell-y rhiantgen sy'n ei greu.

Yn ddiffygiol, mae subshell yn dibynnu ar ei riant yn yr ystyr, os bydd y broses riant yn dod i ben, mae'r isgell hefyd yn dod i ben. Mae unrhyw allbwn yn cael ei basio o'r subshell i'r rhiant gragen.

Sut i Greu Subshell

Mewn sgript cragen Bash, rydych chi'n creu subhell gan ddefnyddio'r nodiant rhythmws:

#! / bin / bash echo "Cyn dechrau subshell" (cyfrif = 1 tra [$ cyfrif -le 99] ailadrodd "$ count" cwsg 1 ((cyfrif ++)) wedi'i wneud) echo "Gorffen"

Yn yr enghraifft, mae'r amlen tra yn cael ei amgáu ym mhathesis, sy'n golygu ei fod yn cael ei weithredu mewn is-gell o'r gragen lle mae'r ffeil sgript yn cael ei weithredu.

Rhedeg Sgwâr yn y Cefndir

Oni bai eich bod yn nodi bod y subhell yn cael ei weithredu yn y cefndir, mae'r rhiant craig yn aros i'r subhell i orffen cyn parhau â gweddill y sgript. Fodd bynnag, os ydych am redeg cylchdrolau ochr yn ochr, byddwch yn eu rhedeg yn y cefndir, a gyflawnir gyda'r cymeriad ampersand yn dilyn y mynegiant subhell, fel y dangosir yma:

#! / bin / bash echo "Cyn dechrau subshell" (cyfrif = 1 tra [$ count -le 99] yn adleisio "$ count" cwsg 1 ((cyfrif + + +)) wedi'i wneud) ac adleisio "Gorffen"

Rhedeg Multiple Subshells mewn Cyfochrog

Os ydych yn creu lluosogau lluosog fel prosesau cefndir, gallwch chi redeg tasgau ar y cyd. Yn nodweddiadol, mae'r system weithredu'n defnyddio proseswyr neu ddyluniadau gwahanol ar gyfer pob proses ac is-broses, gan dybio bod cymaint o broseswyr neu gyfres o leiaf ag y bo prosesau. Fel arall, mae tasgau'n cael eu neilltuo i'r un proseswyr neu gyfresau. Yn yr achos hwnnw, mae'r prosesydd neu'r craidd yn newid yn barhaus rhwng y tasgau penodedig nes bod y tasgau'n cael eu cwblhau. Mae gan yr enghraifft nesaf ddau is-broses. Mae'r cyntaf yn cyfrif o 1 i 99, a'r ail un o 1000 i 1099.

#! / bin / bash echo "Cyn dechrau subshell" (cyfrif = 1 tra [$ cyfrif -le 99] ailadrodd "$ count" cwsg 1 ((cyfrif ++)) wedi'i wneud) a (count = 1000 tra [$ count -le 1099] yn adleisio cysgu "$ count" 1 ((cyfrif ++)) ac adleisio "Gorffen"

Defnyddiwch y datganiad aros i ddweud wrth y rhiant broses i aros i'r is-brosesau orffen cyn symud gyda gweddill y sgript:

#! / bin / bash echo "Cyn dechrau subshell" (cyfrif = 1 tra [$ cyfrif -le 99] ailadrodd "$ count" cwsg 1 ((cyfrif ++)) wedi'i wneud) a (count = 1000 tra [$ count -le 1099] ailadrodd "$ count" cwsg 1 ((cyfrif + + +)) a wnaed ac adleisio aros "Gorffen"

Yn defnyddio ar gyfer Is-gwmnïau

Mae is-gwmnïau yn ddefnyddiol pan fydd angen gweithredu gorchmynion mewn amgylchedd neu gyfeiriadur penodol. Os yw pob gorchymyn yn cael ei weithredu mewn is-gellgen wahanol, nid oes unrhyw risg y bydd gosodiadau amrywiol yn cael eu cymysgu. Ar ôl ei gwblhau, nid oes angen adfer y gosodiadau a'r cyfeiriadur cyfredol, gan nad yw unrhyw un o'i is-brosesau yn effeithio ar amgylchedd y rhiant broses.

Gellir defnyddio gohebyddion yn y diffiniadau swyddogaeth fel y gellir eu gweithredu amseroedd lluosog gyda pharamedrau gwahanol.