Басх скрипте су корисне за аутоматизацију задатака и видећете да су одличне за прављење једноставних апликација командне линије. Басх шкољка тумачи Басх скрипте, тако да нећете морати да инсталирате никакве зависности да бисте их написали и покренули. Басх скрипте су такође преносиве пошто већина оперативних система заснованих на Уник-у користи исти тумач љуске.
Познавање Басх скриптовања је неопходно за сваког програмера, посебно ако радите са системима заснованим на Уник-у.
Променљиве у Басху
Басх варијабле разликују велика и мала слова. За декларисање променљивих користите знак једнакости (=) са именом на левој страни и вредношћу са десне стране:
СТАТЕ=Вашингтон
Вредност којој ова декларација додељује СТАЊЕ је једна реч. Ако су вам потребни размаци у вашој вредности, користите наводнике око тога:
СТАТЕ="Северна Аризона"
Мораћете да користите знак долара ($) префикс за референтне варијабле у другим варијаблама или изјавама:
СТАТЕ=Вашингтон
ЛОЦАТИОН="Моја локација је $СТАТЕ"
Штампање вредности у Басху
Постоји неколико начина на које можете да штампате променљиве у Басху. Можете користити одјек команду за основни излаз или Ц-стил принтф команда за форматирање стрингова.
СТАТЕ=Вашингтон
ЛОЦАТИОН="Моја локација је $СТАТЕ"
одјек$ЛОЦАТИОН
Након проглашења СТАЊЕ променљива, дефинише ова скрипта ЛОКАЦИЈА упућивањем на СТАТЕ. Ако онда користи ехо за штампање коначне вредности променљиве ЛОЦАТИОН.
Тхе принтф кључна реч вам омогућава да користите глаголе за форматирање за излаз података. Глаголи обликовања стрингова слични су онима у Ц и Го, али са ограниченим глаголима.
Глагол | Функционалност |
---|---|
%ц | штампа појединачне знакове |
%о | штампа окадецимале |
%с | штампа жице, независно од кућишта |
%Икс | исписује хексадецимално малим словима |
%ИКС | исписује хексадецимално великим словима |
%д | исписује целе бројеве |
%е | штампа научни појам плута малим словима |
%Е | штампа научни појам плута великим словима |
%ф | штампа бројеве са покретним зарезом |
%% | штампа један симбол процента. |
Ево примера употребе глагола са принт кључна реч.
СТАТЕ=Лагос
принтф „Моја локација је %с“ $СТАТЕ
Тхе принтф функција би заменила СТАЊЕ променљива у положају %с глагола, а излаз би био „Моја локација је Лагос“.
Можете да коментаришете у Басху помоћу хеша или фунте (#) симбол. Схелл аутоматски игнорише коментаре.
#!/бин/басх
# СТАТЕ=Вашингтон
# ЛОЦАТИОН="Моја локација је $СТАТЕ"
Нема коментара у више редова. Већина ИДЕ-а и уређивача текста вам омогућавају да коментаришете пречицом Цтрл/Цомманд + коса црта (/). Требало би да можете да користите пречицу за креирање више коментара у једном реду.
Примање корисничког уноса у Басх-у
Као и многи други програмски језици, можете да примате кориснички унос у Басх-у како бисте своје програме/скрипте учинили интерактивнијим. Можете користити читати команду за тражење уноса од корисника.
читати одговор
У овом случају, одговор променљива ће задржати унос корисника приликом испоруке.
ецхо "Шта хоћеш?: "
прочитајте одговор
ецхо $респонсе
Захтев за унос корисника ће бити у новом реду у примеру изнад.
Можете додати -н застава на одјек принт изјаву да задржи ред у који корисник уноси унос.
ецхо -н "Шта хоћеш."
прочитајте одговор
ецхо $респонсе
Декларисање низова у Басху
Низови у Басху су као и већина језика. Можете декларисати променљиву низа у Басху тако што ћете навести елементе у заградама.
Земље=('САД' 'Русија' 'Украјина', "Енглеска", "Тајван", "Кина")
Приступ низу преко упућивања на име променљиве би дохватио први елемент. Можете приступити целом низу користећи знак звездице као индекс.
ецхо ${Цоунтриес[*]}
Такође можете одредити индекс низа да бисте приступили одређеном елементу. Индекс низа почиње од нуле.
одјек "${Цоунтриес[4]}"
Условне изјаве у Басх-у
Басх обезбеђује услове за доношење одлука у програмима.
Ево анатомије иф-елсе изјаве у Басху. Мораћете да користите тачку и зарез да бисте навели крај услова.
ако [[ стање ]]; онда
одјек изјава1
елиф [[стање ]]; онда
одјек изјава2
друго [[стање ]]; онда
одјек изјава3
фи
Морате завршити сваки ако изјава са фи кључна реч.
ако [ 1 == 2 ]; онда
одјек једно
елиф [ 2 == 3 ]; онда#друго-ако
одјек два
друго [ 4 > 3 ];
одјек "тачно, 3"
фи
Можете користити исказе случаја у својим Басх програмима користећи случај кључна реч. Мораћете да наведете образац праћен завршним заградама пре изјаве.
ЦИТИ=Лагос
случај$ЦИТИин
"Вашингтон") # шаблон
одјек "Сједињене Америчке Државе" # изјава
;; # крај случаја
"Лагос" | "Абуџа")
одјек "Нигерија"
;;
"Јоханесбург" | "Кејптаун")
одјек "Јужна Африка"
;;
*) # подразумевани образац
одјек "Антарктик" # подразумевана изјава
;;
есац# крај изјаве случаја
Можете дефинисати подразумевана мала слова користећи знак звездице (*) као образац. Изјаве случаја морају се завршити са есац кључна реч.
Петље у Басху
У зависности од ваших потреба, можете користити вхиле петљу, опсег фор-петљу или Ц-стил фор петља за понављајуће операције.
Ево примера фор-петље у стилу Ц. Фор-петље се морају завршити са Готово кључну реч, а наредбу фор морате завршити тачком и зарезом иза које следи урадити кључна реч.
за ((а = 0; а < 10; а+2)); урадити
одјек$а
Готово
Опсег фор петље је згодан за рад са датотекама и многе друге операције. Мораћете да користите ин кључна реч са опсегом фор-петље.
за и ин {1..7}; урадити
одјек$1
Готово
Ево једноставне бесконачне петље за демонстрирање Басх-а док петље у акцији.
наме=1
док [ 1 -ле 5 ] # док је 1 < 5
урадити
одјек$наме
Готово
Тхе -ле у изјави услова је бинарни оператор за мање од.
Функције у Басху
Не требају вам кључне речи да бисте прогласили функције у Басху. Функције можете декларисати именом, а затим заградама испред тела функције.
принт_воркинг_дирецтори() {
одјек$ПВД#позивање команде ПВД из скрипте
}
одјек "Ти си ин $(принт_воркинг_дирецтори)"
Функције могу да враћају променљиве у Басху. Све што вам треба је повратак кључна реч.
принт_воркинг_дирецтори() {
повратак$ПВД
}
Тхе принт_воркинг_дирецтори функција враћа радни директоријум датотеке.
Можете писати схелл скрипте на другим језицима
Басх није једини језик који можете да користите за интеракцију са љуском оперативног система или за прављење апликација командне линије. Можете користити многе друге језике као што су Го, Питхон, Руби и Руст.
Многи оперативни системи имају унапред инсталиран Питхон3, а Питхон је распрострањен језик. Ако вам треба још више функционалности него што Басх скрипте могу да понуде, размислите о коришћењу Питхон-а.