Преглед за цикъл в скриптове на Shell

За цикъл в Shell Scripting в това, да кажем, ако искаме да изпълняваме задача или операция повтарящо, можем да напишем един и същ код онези многоброй пъти, което е отнемаща време и не ефикасно също. За да избегнем този тип сценарии, можем да използваме контури като за цикъл на език за програмиране. Така че, за цикъла се използва за изпълнение на определена задача като добавяне / умножение или каквато и да е друга операция за определен брой пъти, докато условието за прекратяване е изпълнено във всяка операционна система. Не е необходимо да пишем един и същ код отново и отново, като използваме за цикъл.

Синтаксис на за цикъл

Синтаксисът на за цикъл в скриптове на черупките може да бъде представен по различни начини, както е показано по-долу:

1. Първи метод на синтаксиса

for var in list
do
command1
command2
done

От горния пример имаме предварително дефинирани ключови думи или вградени ключови думи като за, направи, свърши и инча. Като има предвид, че списъкът е списък на променливи или списък с думи или списък с числа, а var е име на променлива по време на тази итерация. Ако не е предоставен списък, bash ще вземе позиционен параметър, който прехвърлихме в черупката. В горното за цикъл, той ще изпълни всички команди, които са там между „направи“ и „направи“ за n брой пъти, където n е размерът на списъка. Например, ако размерът на списъка е 5 с числа от 1 до 5, тогава по време на първата итерация 1 ще се съхранява във var и операциите върху var ще се извършват от тялото на цикъла for, където има команди.

2. Втори метод на синтаксиса

for ( ( expr1; expr2; expr3 ))
do
command1
command2
….
done

В горния синтаксис, ако наблюдаваме този синтаксис е подобен на синтаксиса на за цикъл в програмния език c. In for loop има три израза, където първият израз е за инициализация, вторият е за условна проверка, а третият - за актуализиране на итератор. Изпълнението по-горе за цикъл ще започне така, преди да започне първата итерация expr1 се изпълнява, което означава, че инициализацията ще се извърши след, след като операциите / командите между do и done ще се изпълняват итеративно, докато expr2 не оцени на true и след всяка итерация expr3 актуализира актуализацията итераторска стойност (брояч), така че операциите да се извършват върху следващия елемент или стойност в списъка или масива или низ.

Диаграма на потока - За контур в Scripting Shell

Нека разгледаме пример за цикъл и да обсъдим потока от него, използвайки диаграмата на потока.

for filename in *.dat
do
echo cp $fname orig_$fname
done

В горната диаграма на потока ние обясняваме потока за цикъл, който се повтаря в списък с имена на файлове и има четири стъпки в потока като потока на процеса, променлива стойност, процес и stdout. В процеса на процеса той обяснява кога стартира цикълът за цикъл, итераторната стойност, проверява състоянието, ако е удовлетворен, след това изпълнява процеса, в противен случай завършва процеса. При променлива стойност, итерация чрез итерация ще получим име на файл в него като textfile.dat и по време на процеса той изпълнява оператор echo, където показва оператор за копиране със старо име и ново име на файл в stdout. Така че, това е потокът за цикъл, който итератира над списъка с входящи имена на файлове.

изход:

Как за Loop работи в Shell Scripting?

За скрипта в обвивката за черупки работи по следния начин, когато shell вижда ключовата дума, защото знае, че трябва да повтаря набор от команди веднъж за всеки елемент от списъка. Всеки път, когато итерацията се изпълнява, елемент от списъка се присвоява на променливата var и var се обработва чрез списъка от команди, присъстващи в цикъла между „свърши и свърши“, преди да се премине към следващия елемент в списъка или следващата итерация. Ще получим достъп до стойността във var, използвайки $ преди променливата, така че когато скриптът на shell го обработва, стойността в var замества вместо него.

Пример:

for filename in *.txt
do
ls filename
done

В горната програма предаваме списък с .txt файлове като вход към цикъла for и името на променливата е име на файл, в което .txt файлът ще се съхранява и след това обработва името на файла, като посочва .txt файла в името на файла и след това същият процес ще се повтаря, докато не приключи обработката на всички .txt файлове.

изход:

Примери за контур

Досега обсъждахме как цикълът работи в скрипт с черупки и различни синтаксиси. Сега, нека да видим няколко примера и да преминем през тях и да обясним всеки пример за това, което прави

Пример №1

Нека списък на статични стойности като вход за цикъл и как ще се изпълни ще видим по-долу:

for a day in Fri Thu Wed Tue Mon
do
echo “Todays day is $day”
done

В горния пример не трябва да предаваме входните стойности с, тъй като разделителят, ако го предаваме, ще счита, че разграничителят също е стойност като "Fri", и не трябва да изброяваме стойности, използвайки двойни кавички ", ако ги предадем с двойни кавички, скриптът на черупката ще третира всички стойности като единична стойност.

Пример o / p: Днес ден е: пт чт ср вт пн (ако използваме двойни кавички)

изход:

Пример №2

Сега нека видим още един пример, в който използваме с за преди списъка за въвеждане, както е показано по-долу:

Month = “Jan Feb Mar Apr May Jun”
for mon in $Month
do
echo “Month is $mon”
done

В горния пример правим същото изпълнение на цикъла като горния пример, но вместо четене на списъка за въвеждане ще се извърши с помощта на ключова дума „in“. При скриптовете на черупките всяка променлива трябва да бъде представена в двойни кавички, но има няколко изключения, като например, ако използваме двойни кавички в $ Month отгоре за линия на линия, тогава тя ще третира цели думи като един ред. Затова трябва да се погрижим за това.

изход:

Пример №3

Сега ще напишем за цикъл без входен списък в оператора for loop, вместо това ще вземе вход от позиционни аргументи към скрипта и примера, както е показано по-долу:

Нека ни даде името на скрипта като sample.sh и неговото съдържание, както е посочено по-долу:

for num
do
echo “Number is $num”
done
./sample.sh 1 2 3 4 5

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

изход:

Заключение - За цикъл в Shell Scripting

И накрая, става въпрос за цикъл в скриптовете на черупките. Обсъдихме какво е цикъл в скриптовете на черупките, за синтаксиса на цикъла, неговата схема на потока, обясняваща потока за цикъла, как цикълът работи в черупката и примери за цикъла в скрипта на черупките. Надявам се, че ще имате добро разбиране на цикъла, как да го използвате в скриптове на черупките и да го изпълните след като прочетете тази статия.

Препоръчителни статии

Това е наръчник за За цикъл в Shell Scripting. Тук обсъждаме въвеждането, Как за контура работи в скриптовете на черупките, Диаграмата на потока и Примерът за цикъла. Можете също да прегледате и другите ни предложени статии, за да научите повече -

  1. Цикли в R
  2. Spark SQL Dataframe
  3. Многоизмерна база данни
  4. Предимства на визуализацията на данни

Категория: