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

Иако га обично користимо за административне операције или операције управљања датотекама, удобност de линук проширује своју функционалност далеко изван те сврхе, омогућавајући нам програмирање скрипте Овај водич није намењен као потпуна референца о Басх програмирању, већ као увод у основне наредбе и структуре, што ће нам омогућити да проширимо снагу нашег ГНУ / Линук система.

Шта је „скрипта“?

У основи кажемо да је то датотека која садржи код написан на одређеном програмском језику који систем користи за одређени задатак. Не треба да има спољни улаз или графички интерфејс, али мора да изазове излаз обрађених података (чак и ако их корисник не види).

Језик који користи Басх дефинише сопствени тумач и комбинује синтаксу других љуски, као што је Корн Схелл (ксх) или Ц Схелл (цсх). Многе наредбе које се обично користе у конзоли могу се користити и у скриптама, осим оних које се строго односе на одређену дистрибуцију.

Структура скрипте

За почетак морамо имати уређивач текста и жељу за програмирањем. Датотеке које сачувамо са екстензијом .сх конзола може извршити (или протумачити) под условом да је први ред следећи:

#! / бин / басх

Ово говори систему да користи конзолу за покретање датотеке. Поред тога, знак # омогућава вам писање коментара. Да бисмо створили најједноставнији пример, додали смо још једну линију, приказану на следећој слици:

Команда ецхо приказује поруку на екрану, у овом случају типично „Хелло ворлд!“ Ако га сачувамо и извршимо помоћу конзоле, видећемо резултат.

Основне команде

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

Псеудоними: омогућава замену низа речи краћим, омогућавајући смањење кода.

#цреате алиас позвани пер са адресом #Довнлоадс фолдер алиас пер = '/ хоме / усер / Довнлоадс' # Сваки пут када желимо да га користимо само морамо позвати # нову реч по # Да бисмо уништили тај алиас, ми користите уналиас уналиас пер

бреак: омогућава вам да одмах изађете из фор, вхиле, унтил или селецт лооп (петље ћемо детаљно проучити касније)

# Креирајте петљу која ће доделити бројеве од 1 до 5 # за сваки "заокрет петље" за бројач у 1 2 3 4 5 до # Исписујемо тренутну вредност променљиве #цоунтер, коју анализира знак $ ецхо "$ цоунтер" #Ако је вредност бројача једнака 3 ако је [$ цоунтер –ек 3] онда #Прекид излази из петље за прекид фи

цонтинуе - Слично прекиду, само што игнорише тренутну петљу и прелази на следећу.

# Креирајте петљу која ће доделити бројеве од 1 до 5 # за сваки "заокрет петље" за бројач у 1 2 3 4 5 урадите # Ако је вредност бројача једнака 3 ако је [$ бројач –ек 3] онда # Настави спречава да се анализира остатак # тренутног циклуса прескакањем у следећу рунду, односно вредност # 3 неће бити одштампана. настави фи ецхо "$ цоунтер" готово

проглашава: декларише променљиве и додељује им вредности, баш попут слога (они раде на исти начин). Можемо га комбиновати са неким опцијама: -и проглашава целе бројеве; -р за променљиве само за читање, чија се вредност не може променити; –А за низове или „низове“; -ф за функције; -к за променљиве које се могу „извести“ ван окружења саме скрипте.

прогласити –и нум = 12 изјавити –к пи = 3.14

помоћ: приказује помоћ за одређену команду.

послови: приказује покренуте процесе.

# Са –ц приказујемо име наредби, са –п # пид (ид процеса) сваког процеса. послови -цп

нека: процени аритметички израз

нека је а = 11 нека је а = а + 5 # Коначно исписујемо вредност а која је 16 ецхо "11 + 5 = $ а"

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

лоцал в1 = "Ово је локална променљива"

одјава: омогућава потпуно одјављивање из Схелл-а; корисно за случајеве у којима радимо са више прозора Схелл, у којима ће наредба за излаз истовремено дозволити само један прозор.

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

#% ф исписује као плутајући број, н за нову # линију принтф "% фн" 5 5.000000 # & д омогућава прослеђивање децималних бројева као аргументе принтф "Постоји% д поруџбина вреднованих у% д долара.н" 20 500 Постоји 20 поруџбина вредних 500 долара.

читање: очитавање реда са стандардног уноса (на пример модул који се користи за учитавање података преко тастатуре). Можемо проследити опције као што су: -т да одредимо ограничено време читања; -а тако да је свака реч додељена положају у низу анаме; -д користити граничник који ће бити написан на крају реда; међу другима.

ецхо "Унесите своје име и притисните ЕНТЕР" #Прочитајте име променљиве реад наме ецхо "Ваше име је $ наме"

типе: описује наредбу и њено понашање. Може бити корисно сазнати дефиниције података за сваку наредбу.

типе –а '[' #типе нам говори да је [је Схелл уграђена наредба [је Схелл уграђена # -а омогућава проналажење директоријума који садрже # извршну датотеку са написаним именом. [је / уср / бин / [

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

# Видимо да су наша тренутна ограничења улимит –а # -ф омогућава корисницима да ограниче могућност да # креирају датотеке веће од 512000 Кб (500 #Мб) улимит -ф 512000 # -в ограничава виртуелну меморију процеса. улимит –в 512000

сачекајте: сачекајте да се настави одређени процес или посао.

# Скрипта чека да се изврши процес пид # 2585

сачекајте 2585

Остале корисне наредбе које можемо додати у скрипте представљене су симболима.

!!: поново покрените последњу команду

! вер: извршава последњу команду која је започела изразом „вер“.

'==', '! =', '>', '<', '> =' и '<=': релациони оператори.

|: Оператор ОР се обично користио за спајање два регуларна израза.

: есцапе команда која вам омогућава да форматирате изразе. На пример: а за звучно упозорење, н за нову линију, б за бацкспаце итд.

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

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

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

*

*

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

  1.   Средње тешко дијо

    Сјајно! У сваком случају, 2 коментара: Убунту ознака је упола превише, јер генерише нешто што је генеричко. А ако ови водичи наставе да напредују, било би добро да су међусобно повезани ...
    Осим тога, овај потез је занимљив!

  2.   Користимо Линук дијо

    Добар допринос! Сјајно!

  3.   Ђовани Ескобар Соса дијо

    Недостају референце само онима који желе детаљније да се позабаве тим питањем. Неке добре, иако их у нашим земљама није тако лако пронаћи
    - Практични водич за Линук команде, уређиваче и програмирање шкољке, Марк Собелл (поглавље 8)
    - Про Басх програмирање, Цхрис ФА Јохнсон (иако је ово за оне који имају друге референце или мало више знања).

    Добар чланак.

  4.   Користимо Линук дијо

    Добар спој! Хвала вам!

  5.   Патрицио Дорантес Јамарне дијо

    : @ Функција „Пријави се као“ избрисала је мој претходни коментар, па ћу га резимирати даље:
    послови -цп
    басх: ​​јобс: -ц: неисправна опција
    послови: употреба: послови [-лнпрс] [послови…] или наредба послови -к [аргс]

    -ек -гт -лт не прихватају променљиве децималне тачке, између форума и форума открио сам да је бц добар савезник:
    иф [`ецхо 9.999> 10 | бц` -ек 1]; онда
    ецхо „9.999 је веће од 10, уверите се да ваш процесор и даље ради“
    друго
    ецхо «9.999 није веће од 10, све ради нормално
    fi

  6.   НотФромБрооклин дијо

    Овај пост врло добро сумира све опште податке о басх скриптирању:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    На овој страници ћете пронаћи многа питања и одговоре о басх особеностима:
    http://unix.stackexchange.com/questions/tagged/bash

    Ево неколико заиста добрих скрипти, и хеј, можете их научити читајући скрипте других људи:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   НотФромБрооклин дијо

    У праву си са оним што говориш, осим за басх. Сваки систем који сам видео има басх у / бин / басх.

    Али за питхон, перл, руби итд., У реду је то користити. ја радим

  8.   Гуилле дијо

    Случајно, на факултету користимо басх скрипте, тако да је податак 10, врло добро!

  9.   алек ви дијо

    пдф верзија за преузимање би била добра !! 😀

  10.   Марко Антонио Де Фуентес дијо

    Веома добра локација. Напокон сам пронашао нешто корисно. Хвала вам.