Како написати БАСХ "за" петље

Како користити БАСХ "за" петљу у схелл скриптама

БАСХ (који се односи на Боурне Агаин Схелл) је скриптни језик који користи већина Линук и УНИКС базираних оперативних система.

Можете користити БАСХ наредбе у оквиру прозора терминала један за другим или можете додати команде у текстуалну датотеку да бисте направили схелл скрипту.

Одлична ствар у писању скриптова је да их можете поново покренути. На пример замислите да морате додати корисника систему, поставити њихове дозволе и управљати почетним окружењем. Можете запишати команде на папиру и покренути их док додате нове кориснике или можете написати једну скрипту и само пренијети параметре у тај скрипт.

Скриптни језици као што је БАСХ имају сличне програмске конструкције као и други језици. На пример, можете користити параметре увоза да бисте добили улаз са тастатуре и сачували их као варијабле. Тада можете добити скрипту да изведе одређену акцију засновану на вриједности улазних параметара .

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

Постоји низ начина понављања кода (познатих и као петље). У овом водичу биће вам приказано како написати "за" петљу.

А за петљу понавља одређени део кода изнова и изнова. Они су корисни тако да се низ команди може наставити да ради до одређеног стања, након чега ће се зауставити.

У овом водичу биће вам приказано пет начина да користите петљу за БАСХ скрипту.

Пре почетка

Пре него што започнете са примјерима петље за петље, потребно је отворити прозор терминала и слиједити ове кораке:

  1. Унесите мкдир скрипте ( сазнајте више о мкдир овде )
  2. Унесите цд скрипте (ово мења директориј у скрипте )
  3. Унесите нано екамплен.сх (где је н пример који радите)
  4. Унесите скрипту
  5. Притисните ЦТРЛ + О за спремање и ЦТРЛ + Кс за излазак
  6. Покрените басх екамплен.сх (опет, са н као примјером с којим радите)

Како кренути кроз листу

#! / бин / басх
за број у 1 2 3 4 5
урадите
ецхо $ број
Готово
излаз 0

БАСХ начин кориштења "за" петље је нешто другачији од начина на који већина других програмских и скриптних језика управља "за" петље. Разбијмо сценарио ...

У БАСХ "за" петљу, изјаве између извршавања и извршења се изводе једном за сваку ставку на листи.

У горе наведеном примеру, листа је све што долази после речи (тј. 1 2 3 4 5).

Сваки пут када петља понови, следећа вриједност у листи се убацује у варијаблу која је наведена након ријечи "за" . У горњој петљи, варијабла се зове број .

Ехо изјава се користи за приказ информација на екрану.

Дакле, овај пример узима бројеве од 1 до 5 и излази их један по један на екран:

Како кренути између почетне и крајње тачке

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

Ово нас доводи до другог примера који показује како одредити почетну и крајњу тачку:

#! / бин / басх
за број у {1..10}
урадите
ецхо "$ нумбер"
Готово
излаз 0

Правила су у основи иста. Вредности после речи " у" чине листу за понављање и свака вриједност у листи се ставља у варијаблу (тј. Број), а сваки пут када се петља понавља, извршавају се изјаве између учинка и учињене .

Главна разлика је начин на који се листа формира. Конусни држачи {} у основи означавају опсег, а опсег у овом случају је од 1 до 10 (две тачке одвајају почетак и крај опсега).

Овај примјер, стога, пролази кроз сваки број између 1 и 10 и излази број на екран на сљедећи начин:

Иста петља могла је бити написана овако, синтакса идентична првом примеру:

за број за 1 2 3 4 5 6 7 8 9 10

Како прећи бројеве у опсегу

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

Замислите да желите петље између 0 и 100, али само приказати сваки десети број. Следећа скрипта приказује како то учинити:

#! / бин / басх
за број у {0..100..10}
урадите
ецхо "$ нумбер"
Готово
излаз 0

Правила су у основи иста. Постоји листа, варијабла и сет изјава које треба извршити између учинити и учинити . Листа овог пута изгледа овако: {0..100..10}.

Први број је 0, а крајни број је 100. Трећи број (10) је број ставки на листи које ће прескочити.

Из наведеног примера, стога се приказује сљедећи излаз:

Традиционални тражи петље

БАСХ начин писања за петље је мало чудан када се упореде са другим програмским језицима.

Међутим, можете написати петљу у сличном стилу на програмски језик Ц, овако:

#! / бин / басх
за ((број = 1; број <100; број ++))
{
ако (($ број% 5 == 0))
онда
ецхо "$ број је дељив за 5"
фи
}
излаз 0

Петља почиње постављањем променљивог броја на 1 (број = 1 ). Петља ће наставити да понавља док је вредност броја мања од 100 ( број <100 ). Вредност броја се мења додавањем 1 по свакој итерацији ( број ++ ).

Све између завртањ се врши кроз сваку итерацију петље.

Бита између браце проверава вредност броја , дели је са 5 и упоређује остатак на 0. Ако је остатак 0, онда је број дељив са 5 и затим се приказује на екрану.

На пример:

Ако желите да промените величину корака у итерацији, можете променити број броја ++ да буде број = број + 2 , број = број + 5 или број = број + 10 итд.

Ово се може додатно смањити на број + = 2 или број + = 5 .

Практични пример

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

Следећи пример показује како да претворите аудио датотеке са МП3 на ВАВ :

#! / бин / басх

Листа у овом примеру је свака датотека са .МП3 екстензијом у тренутној фасцикли и варијабла је датотека .

Команда мпг претвара МП3 датотеку у ВАВ. Међутим, вероватно ћете морати прво инсталирати помоћу свог менаџера пакета.