Как да използвам BASH за Loop



Опитайте Нашия Инструмент За Премахване На Проблемите

Един от най-основните трикове при създаването на bash скриптове включва създаването на цикъл, така че да можете да изпълнявате определена задача автоматично няколко пъти. В крайна сметка цикълът ще достигне предварително определено тестово състояние и внезапно ще престане да се изпълнява. Цикли като тези ще работят перфектно в bash на Linux и macOS, както и на bash черупката в Windows 10 и дори различните черупки във FreeBSD. Естествено, можете да напишете която и да е команда, която предпочитате, във всеки цикъл и да поддържате какъвто и да е процес, колкото искате време. Въпреки че ще напишем някои изключително прости цикли, можете да използвате тези умения, за да създавате каквито и да е скриптове, които искате.



Има много начини да започнете да пишете скрипт, но за тази дискусия ще приемем, че сте отворили команден ред или чрез търсене на терминал в Dash, чрез щракване върху него в менютата на KDE, MATE, LX или Whisker или като задържите Ctrl, Alt и T едновременно. Въпреки че ще обсъждаме vi / vim и nano като редактори, въпросът кой редактор да се използва е доста личен и бихте могли да работите с каквото и да се чувствате комфортно.



Метод 1: До Loop

Може би най-основният цикъл в bash е цикълът till. Той ще продължи да изпълнява команди, докато зададеното от вас условие за тест не стане вярно. Ще приемем, че сте използвали или nano, или vi, за да отворите несъществуващ файл, наречен till.sh, и сте готови да вмъкнете нов текст в него. Просто ще направим нещо, което отчита до 20 във вашия терминал, за да улесним това в началото.



Започнете, като напишете следното:

#! / bin / bash

n = 0



до [$ n -gt 20]

направете

ехо $ n

((n ++))

Свършен

Ако използвате nano, запазете го, като задържите Ctrl и след това натиснете O и накрая X, за да излезете. Потребителите на vi ще искат да натиснат escape, след това напишете: wq, за да запазите и да излезете.

Следващ тип chmod + x до цикъл в подканата, за да го направите изпълним и след това въведете ./untilLoop за да го стартирате. След като се изпълни, цикълът ще продължи да отпечатва нови номера на вашия терминал, докато n променливата достигне до 20.

Между другото, първият ред казва на вашата среда коя черупка да се зареди при работа с тези скриптове. Някои програмисти съветват само да се използва #! / Bin / sh, за да се гарантира, че вашият скрипт се придържа към определени POSIX стандарти, но тези прости скриптове не би трябвало да имат никакъв проблем при работа в по-голямата част от съвременните системи.

Метод 2: The for Loop

Цикълът for разглежда всеки елемент от даден списък и след това изпълнява даден набор от команди в този списък. Ще направим такъв, който отпечатва някои имена на операционната система, но отново имайте предвид, че може да правите всичко с това, ако искате.

Въведете или nano forLoop или ние forLoop в командния ред и започнете да въвеждате този следния скрипт. Потребителите на vi ще трябва да влязат в режим на вмъкване, преди да го направят.

#! / bin / bash

unices = ’GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix’

за unix в $ unices

направете

ехо $ unix

Свършен

Запазете файла отново, използвайки или Ctrl + O и след това Ctrl + X метод в nano или Esc тогава: wq метод в vi преди да издадете командата chmod + x за цикъл за да стане изпълним. След като го направите, стартирайте го, като напишете ./forLoop в подканата. Цикълът for принуждава командата echo да работи на свой ред върху всеки от елементите в променливата unices. Можете още веднъж да замените този списък с всеки аргумент и да замените ехото с всяка команда за автоматизиране на дълги процеси.

Метод 3: Времето Loop

Започнете да редактирате трети файл, наречен whileLoop, като използвате nano, vi или който и да е друг редактор, който искате да използвате. Ако предпочитате да използвате графичен текстов редактор, тогава всъщност можете да направите това, както и с някой от тези проекти, стига да сте сигурни, че сте поставили файла в същата директория, в която работите, от командния ред .

В този файл ще искате да добавите редовете:

#! / bin / bash

n = 0

докато [$ n -le 20]

направете

ехо $ n

((n ++))

Свършен

Запазете файла по същия начин, по който сте запазили останалите, и след това излезте от текстовия редактор. След като излезете, издайте командата chmod + x whileLoop за да ви позволи да го изпълните и след това да стартирате ./ whileLoop за да го стартирате. Ще видите същия изход, който излезе от скрипта tillLoop от първия метод, тъй като брои от 0 до 20 за повече от вероятно за части от секундата.

Това е отлична демонстрация на факта, че има повече от един начин да правите нещата винаги, когато работите с цикли по този начин. Въпреки че технически няма грешен начин да го направите, вероятно ще попаднете на автори на скриптове, които твърдят, че трябва да пишете скриптовете си по-близо до начина, по който езикът за програмиране C прави нещата, или като алтернатива, други може да предполагат, че не трябва да правите това. Честно казано, вероятно има много правилни начини за решаване на проблем.

Чувствайте се свободни да изтриете вашите скриптове, след като приключите с практикуването им.

3 минути четене