Skip to main content

Линук Схелл Сцрипт Примјери БАСХ 'фор' Лооп

Anonim

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

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

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

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

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

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

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

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

Пре почетка

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

  1. Ентер мкдир сцриптс (сазнајте више о мкдир овде).

  2. Ентер цд скрипте (ово мења директориј у скрипте ).

  3. Ентер нано екамплен.сх (где н је пример на који радите).

  4. Унесите скрипту.

  5. Притисните ЦТРЛ + О да сачувате и ЦТРЛ + Кс да изађете.

  6. Трцати басх екамплен.сх (опет, са н као пример са којим радите).

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

#! / бин / басхфор број у 1 2 3 4 5доецхо $ нумбердонеекит 0

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

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

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

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

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

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

  • 1
  • 2
  • 3
  • 4
  • 5

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

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

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

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

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

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

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

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

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

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

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

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

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

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

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

  • 0
  • 10
  • 20
  • 30
  • 40
  • 50
  • 60
  • 70
  • 80
  • 90
  • 100

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

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

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

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

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

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

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

На пример:

  • 5 је дељива са 5
  • 10 је дељива са 5
  • 15 је дељива са 5

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

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

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

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

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

#! / бин / басхза датотеку у ./*.мп3домпг -в ./вавс/"${филе}".вав "$ филе" доне

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

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