Програмирање у басх - 3. део

у сигуран наш концепти Научићемо 2 врло корисна алата за програмирање који савршено раде у Басху. Научите да стварате функције и дефинисати цевоводи у почетку може изгледати сложено, али онда ћемо видети неизмерно корисност које нам пружају.

Цеви

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

Цев се генерално препознаје по томе што има симбол | то омогућава спајање израза; Иако се подразумевано користи, постоје и други начини за стварање цеви.

Пример: испис недавних порука језгра

#дмесг вам омогућава да видите недавне поруке језгра и учитане управљачке програме # током покретања система; таил исписује последње делове датотеке или #цомманд

дмесг | Реп

Иако могу бити компликовани колико год желимо, основна структура цевовода омогућава да се резултат једне наредбе користи као улаз у следећу, што може пружити улаз за нову наредбу ако наставимо да додајемо узастопне цеви.

funkcije

Функције су скуп изјава које су груписане заједно тако да се могу извршити неколико пута без потребе да их преписујете. Еквивалентно је размишљању да ћемо, када научимо да кувамо неку врсту хране, записати њен рецепт на лист и сваки пут када желимо да кувамо ту храну консултујемо рецепт, уместо да преписујемо нови лист са истим рецептом.

Можда најважнија ствар код функција је могућност прослеђивања параметара, података које ће користити за њихову обраду и генерисање резултата. Његова структура је следећа:

функција име-функције {

процесима

}

Пример: функција која приказује услуге које раде на тцп протоколу. Такође можемо видети како да применимо више цеви.

# Дефинишемо име функције, може бити оно које нам се свиђа.

функција сервицес_тцп {

#цат спаја и приказује садржај директоријума / етц / сервицес, а то је # који садржи све услуге са њима повезаним портовима.

# први греп узима листу и уклања коментаре, са –в инвертујемо резултат

# други греп приказује само оне који се односе на тцп

мачка / итд / услуге | греп –в "^ #" | греп тцп

}

Када треба да извршимо ову функцију, само је морамо назвати њеним именом:

тцп_сервицес

У овом случају ради без параметара; У случају да их има, морамо их додати како би функција радила исправно, иначе функција неће радити исправно. Коришћење ретурн омогућава функцији да врати вредност као резултат процеса.

Пример: функција са улазним параметрима која израчунава збир 2 броја.

#! / бин / басх
сума функције ()
{
# са нека можемо извршити операцију унутар наводника
нека "резултат = $ 1 + $ 2"

#ретурн омогућава враћање целобројне вредности. Једном када се поврат изврши, вредност ће бити депонована унутар променљиве $?
врати $ резултат;
}
 
# Позива се функција збрајања и прослеђујемо 2 улазна параметра.

додај 2 3

#принтс вредност $? са одјеком који процењује стварну вредност променљиве у наводницима
ецхо -е "Резултат = $?";

<< Идите на претходни део

Хвала Јуан Царлос Ортиз!


7 коментара, остави свој

Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Нилл показивач дијо

    Нисам сигуран, али ретурн наредба функција служи само за враћање целог броја између 0 и 255, попут кодова грешака „екит“, углавном 0 ако је све у реду и други број за остале случајеве. Иако ово делује у примеру, мислим да није добра пракса враћати резултат повратком.
    Тамо кажем бесмислице, ха! око! ха!

  2.   Јуанк дијо

    Истина ме оставила у недоумици. У сваком случају, да бисмо избегли проблеме са функцијама, можемо заменити ретурн са ецхо у случају да функција жели да врати или одштампа вредност или низ.

  3.   Абел С. Моунт Биг дијо

    Истина је, да бисте то решили можете користити наредбу бц, у функцији зброја можете користити: ресулт = `ецхо $ 1 + $ 2 | бц -кл`

  4.   Луис Мигуел дијо

    добро,

    Желео бих да знам где могу да сачувам басх датотеке тако да се покрећу широм система, а то није бин директоријум, али може бити дом за резервне копије.

    Хвала и поздрав.

  5.   Јоакуин дијо

    Пуно вам хвала, почињем са скриптама, а истина је да је ово врло корисно, врло сте љубазни и делите своје знање!
    поздрави

    1.    искористимо линук дијо

      Хвала вам! Загрљај!
      Пабло

  6.   ЦРИСТИАН дијо

    Синтаксна грешка: "(" неочекивано
    Добијам грешку при покушају покретања примера, копирао сам га потпуно исто

    Шта може бити? ја сам на убунту 14.10