Басх Субсхеллс

Bash Subshells



Понекад је потребно да покренете једну или више команди или скрипти у позадини. Овај задатак се може обавити писањем свих команди или скрипти у датотеку скрипте и извршавањем датотеке помоћу амперсанда (&) или извршавањем команди или скрипти у подљуску из тренутне љуске. Подљуска се може користити за извршавање више команди или скрипти затварањем са $() или позадинским ознакама (`). Методе коришћења Басх подљуске су приказане у овом водичу.

Различити примери подљуске

Различити начини извршавања скрипте у подљусци су приказани у овом делу упутства.

Пример 1: Извршите подљуску користећи једноструки и двоструки наводник

Направите Басх датотеку са следећом скриптом која штампа тренутни датум и време. Затим, променљива $стрВал се штампа затварањем скрипте подљуске унутар једноструких и двоструких наводника.







#!/бин/басх

#Одштампајте команду `датум` у подљусци

одјек 'Данас је `датум` '

#Дефинишите стринг променљиву

стрВал = „Басх подљуска“

#Одштампајте променљиву у подљусци користећи једноструке наводнике

одјек „Излаз појединачних наводника:“ '$(ецхо $стрВал)'

#Одштампајте променљиву у подљусци користећи двоструке наводнике

одјек „Излаз двоструких наводника:“ ' $(ецхо $стрВал) '

Следећи излаз се појављује након извршавања скрипте. Скрипта подљуске се штампа као стринг када је затворена једноструким наводницима. Скрипта подљуске се извршава када је затворена двоструким наводницима:





Пример 2: Претражите све датотеке одређене екстензије користећи подљуску

Направите Басх датотеку са следећом скриптом која узима екстензију датотеке као унос од корисника. Затим, команда „лс“ се извршава у подљусци да би се претражиле све датотеке тог типа екстензије.





#!/бин/басх

одјек „Унесите назив екстензије датотеке:“

#Узмите назив екстензије датотеке која ће се претраживати

читати ект

#Проверите улазну вредност

ако [ [ $ект == '' ] ] ; онда

#Одштампај поруку о грешци

одјек 'Не даје се продужење.'

друго

одјек „Имена датотека са $ект проширење:'

#Одштампајте сва имена датотека са датом екстензијом

одјек ' $( ецхо `лс *.$ект`) '

бити

Следећи излаз се појављује након извршавања скрипте са „ткт“ улазом. Према излазу, на тренутној локацији постоје три текстуалне датотеке:



Следећи излаз се појављује након извршавања скрипте са празном вредношћу:

Пример 3: Извршите аритметички израз у подљусци

Направите Басх датотеку са следећом скриптом где се променљива истог имена користи у главној и подљусци. Аритметичка операција је дефинисана у главној и подљусци.

#!/бин/басх

#Дефинишите променљиву надређене љуске

број = 10

#Одштампајте резултат на основу променљиве родитељске љуске

( ( резултат = $број + 5 ) )

одјек 'Збир $број +5= $ресулт '

#Креирајте променљиву подљуске са истим именом родитељске љуске

( број = двадесет ; ( ( резултат = $број + 10 ) ) ; одјек 'Збир $број +5= $ресулт ' )

#Поново одштампајте резултат на основу променљиве родитељске љуске

одјек 'Збир $број +5= $ресулт '

Следећи излаз се појављује након извршавања скрипте. Први и последњи излаз показују резултат главне љуске. Други излаз показује резултат подљуске. Променљива главне љуске није модификована променљивом подљуске:

Пример 4: Извршите више команди у подљусци

Креирајте Басх датотеку са следећом скриптом која шаље излаз команде „ецхо“ у команду „сед“ која замењује одговарајућу вредност низа другим низом. Излаз команде „ецхо“ је „ЈаваСцрипт“. Дакле, ова вредност се пореди са „Јава“ и „ЈаваСцрипт“. Ако се пронађе подударање, одговарајући низови се замењују низом „Типе“.

#!/бин/басх

#Дефинишите вредност стринга

стрВал = 'ЈаваСцрипт'

#Одштампајте оригиналну вредност стринга

одјек „Вредност низа: $стрВал '

#Одштампајте вредност подљуске

одјек 'Вредност подљуске: '

одјек ' $(ецхо $стрВал | сед 'с|Јава|ЈаваСцрипт Типе|') '

Следећи излаз се појављује након извршавања скрипте. Према излазу, стринг „Јава“ је замењен низом „Типе“. Излаз подљуске је „ЈаваСцрипт ТипеСцрипт“:


Закључак

Једна или више команди или скрипти се могу извршити помоћу подљуске без утицаја на главну љуску. Сврха коришћења подљуске је објашњена у овом водичу користећи више примера. Различите врсте задатака као што су претраживање фајлова, израчунавање збира бројева, замена стрингова итд. у датим примерима ради подљуска. Концепт коришћења подљуске је исправно демонстриран и нови Басх корисници ће сада моћи да користе подљуску након читања овог упутства.