Басх Ранге: Како поновити низове генерисане у љусци

Bash Range How Iterate Over Sequences Generated Shell



Можете поновити низ бројева у басху на два начина. Један је коришћењем сек наредба, а друга је навођењем опсега у фор лооп. Ин сек командом, низ започиње од један, број се повећава за један у сваком кораку и подразумевано штампа сваки број у сваком реду до горње границе. Ако број почиње од горње границе, онда се у сваком кораку смањује за један. Обично се сви бројеви тумаче као покретни зарез, али ако секвенца почиње од целог броја, штампаће се листа децималних целих бројева. Ако се команда сек може успешно извршити, враћа 0, у супротном враћа било који број различит од нуле. Такође можете поновити низ бројева помоћу фор петље са опсегом. Обоје сек наредба и фор петља са опсегом приказане су у овом водичу помоћу примера.

Опције команде сек:

Можете користити сек команду помоћу следећих опција.







-ин

Ова опција се користи за унос бројева са почетним нулама за штампање свих бројева исте ширине.



-ф формат

Ова опција се користи за штампање броја у одређеном формату. Плутајући број се може форматирати коришћењем %ф, %г и %е као знакова конверзије. %г се користи подразумевано.



-с стринг

Ова опција се користи за одвајање бројева низом. Подразумевана вредност је нови ред (' н').





Примери наредбе сек:

Наредбу сек можете применити на три начина. Можете користити само горњу границу или горњу и доњу границу или горњу и доњу границу са повећањем или смањењем вредности сваког корака. Различите употребе команде сек са опцијама приказане су у следећим примерима.

Пример-1: наредба сек без опције

Када се користи само горња граница, тада ће број почети од 1 и повећавати се за један у сваком кораку. Следећа команда штампа број од 1 до 4.



$сек 4

Излаз:

Када се двије вриједности користе с наредбом сек, тада ће се прва вриједност користити као почетни број, а друга вриједност као завршни број. Следећа команда штампа број од 7 до 15.

$сек 7 петнаест

Излаз:

Када ћете користити три вредности са наредбом сек, онда ће се друга вредност користити као вредност повећања или смањења за сваки корак. За следећу команду, почетни број је 10, завршни број 1 и сваки корак ће се рачунати смањивањем 2.

$сек 10 -2 1

Излаз:

Пример-2: сек са –в опцијом

Следећа команда ће одштампати излаз додавањем водеће нуле за број од 1 до 9.

$сек -ин0110

Излаз:

Пример-3: сек са –с опцијом

Следећа команда користи - као сепаратор за сваки редни број. Низ бројева ће се одштампати додавањем - као сепаратора.

$сек -8

Излаз:

Пример 4: сек са опцијом -ф

Следећа команда ће одштампати 10 вредности датума почевши од 1. Овде се опција %г користи за додавање редног броја са другом вредношћу низа.

$сек '%г/04. 2018' 10

излаз:

Басх Ранге

Следећа команда се користи за генерисање низа бројева са покретним зарезом помоћу %ф. Овде ће број почети од 3 и повећавати се за 0,8 у сваком кораку, а последњи број ће бити мањи или једнак 6.

$сек '%ф' 3 0.8 6

Излаз:

Пример 5: Запишите секвенцу у датотеку

Ако желите да сачувате низ бројева у датотеку без штампања у конзоли, можете користити следеће команде. Прва команда ће одштампати бројеве у датотеку под називом сек.ткт . Број ће генерисати од 5 до 20 и повећати за 10 у сваком кораку. Друга команда се користи за преглед садржаја датотеке сек.ткт филе.

$ сек 5 10 20 | цат> сек.ткт
$ цат сек.ткт

Излаз:

Пример-6: Коришћење сек у фор петљи

Претпоставимо да желите да креирате датотеке под именом фн1 до фн10 користећи фор лооп са сек. Направите датотеку са именом ск1.басх и додајте следећи код. Фор петља ће понављати 10 пута помоћу наредбе сек и креирати 10 датотека у низу фн1, фн2, фн3 ... ..фн10.

#!/бин/басх
заиу ``сек 10``
урадити
додирфн.$ и
Готово

Излаз:

Покрените следеће команде да бисте извршили код басх датотеке и проверили да ли су датотеке креиране или не.

$басхск1.басх
$лс

Примери фор петље са опсегом:

Пример-7: Фор петља са опсегом

Алтернатива команде сек је ранге. Можете користити ранге ин фор лооп за генерисање низа бројева попут сек. Напишите следећи код у басх датотеку под називом ск2.басх . Петља ће понављати 5 пута и исписивати квадратни корен сваког броја у сваком кораку.

#!/бин/басх
зану {1..5}
урадити
((резултат= н*н))
Избацио $ н квадрат=$ резултат
Готово

Излаз:

Покрените команду да бисте извршили скрипту датотеке.

$басхск2.басх

Пример-8: За петљу са опсегом и вредности прираста

Подразумевано, број се повећава за један у сваком кораку у опсегу, попут сек. Такође можете променити вредност прираста у опсегу. Напишите следећи код у басх датотеку под називом ск3.басх . Фор петља у скрипти ће понављати 5 пута, сваки корак се повећава за 2 и штампа све непарне бројеве између 1 и 10.

#!/бин/басх
Избацио 'сви непарни бројеви од 1 до 10 су'
заиу {1..10..2}
урадити
Избацио $ и;
Готово

Излаз:

Покрените команду да бисте извршили скрипту датотеке.

$басхск3.басх

Ако желите да радите са низом бројева, можете користити било коју од опција приказаних у овом водичу. Након завршетка овог водича, моћи ћете ефикасније користити наредбу сек и фор петљу са распоном у свом басх скрипту.