Bash Range: Как да повторите последователности, генерирани в черупката

Bash Range How Iterate Over Sequences Generated Shell



Можете да повторите последователността от числа в bash по два начина. Единият е чрез използване последователно команда, а друга е чрез задаване на диапазон в for loop. В последователно команда, последователността започва от едно, числото се увеличава с по едно на всяка стъпка и отпечатва всяко число във всеки ред до горната граница по подразбиране. Ако числото започва от горната граница, то намалява на единица на всяка стъпка. Обикновено всички числа се тълкуват като плаваща запетая, но ако последователността започва от цяло число, тогава списъкът с десетични цели числа ще се отпечата. Ако командата seq може да се изпълни успешно, тя връща 0, в противен случай връща всяко ненулево число. Можете също така да повторите последователността от числа, като използвате цикъл for с диапазон. И двете последователно команда и for цикъл с диапазон са показани в този урок с помощта на примери.

Опциите на командата seq:

Можеш да използваш последователно команда, като използвате следните опции.







Тази опция се използва за подреждане на числата с водещи нули за отпечатване на всички числа с еднаква ширина.



-f формат

Тази опция се използва за отпечатване на номер с определен формат. Плаващото число може да бъде форматирано, като се използват %f, %g и %e като символи за преобразуване. %g се използва по подразбиране.



-s низ

Тази опция се използва за разделяне на числата с низ. Стойността по подразбиране е нов ред (‘ n’).





Примери за команда seq:

Можете да приложите командата seq по три начина. Можете да използвате само горна граница или горна и долна граница или горна и долна граница със стойност на увеличение или намаляване на всяка стъпка. Различните употреби на командата seq с опции са показани в следващите примери.

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

Когато се използва само горната граница, числото ще започне от 1 и ще се увеличава с едно на всяка стъпка. Следващата команда ще отпечата номера от 1 до 4.



$последователно 4

Изход:

Когато двете стойности се използват с командата seq, тогава първата стойност ще се използва като начален номер, а втората стойност ще се използва като краен номер. Следващата команда ще отпечата номера от 7 до 15.

$последователно 7 петнадесет

Изход:

Когато ще използвате три стойности с команда seq, тогава втората стойност ще се използва като стойност на увеличение или намаляване за всяка стъпка. За следната команда началният номер е 10, крайният номер е 1 и всяка стъпка ще се брои чрез намаляване на 2.

$последователно 10 -2 1

Изход:

Пример-2: seq с опция –w

Следващата команда ще отпечата изхода чрез добавяне на водеща нула за числото от 1 до 9.

$последователно 0110

Изход:

Пример-3: seq с опция –s

Следващата команда използва - като разделител за всеки пореден номер. Последователността от числа ще се отпечата чрез добавяне - като разделител.

$последователно -8

Изход:

Пример -4: seq с опция -f

Следващата команда ще отпечата 10 стойности на дата, започващи от 1. Тук опцията %g се използва за добавяне на пореден номер с друга стойност на низ.

$последователно -f „%g/04/2018“ 10

изход:

Bash Range

Следващата команда се използва за генериране на последователност от номер с плаваща запетая, използвайки %f. Тук числото ще започне от 3 и ще се увеличава с 0.8 на всяка стъпка, а последното число ще бъде по -малко или равно на 6.

$последователно -f „%f“ 3 0,8 6

Изход:

Пример-5: Запишете последователността във файл

Ако искате да запишете последователността от числа във файл, без да отпечатвате в конзолата, можете да използвате следните команди. Първата команда ще отпечата числата във файл с име seq.txt . Броят ще генерира от 5 до 20 и ще се увеличава с 10 на всяка стъпка. Втората команда се използва за преглед на съдържанието на seq.txt файл.

$ seq 5 10 20 | cat> seq.txt
$ cat seq.txt

Изход:

Пример-6: Използване на seq в for цикъл

Да предположим, че искате да създадете файлове с име fn1 до fn10, използвайки for цикъл със seq. Създайте файл с име sq1.bash и добавете следния код. For цикълът ще повтори 10 пъти с помощта на командата seq и ще създаде 10 файла в последователността fn1, fn2, fn3 ... ..fn10.

#!/bin/bash
заiв последователно 10
направете
докосванеfn.$ i
Свършен

Изход:

Изпълнете следните команди, за да изпълните кода на файла bash и проверете дали файловете са създадени или не.

$башsq1.bash
$ls

Примери за for цикъл с диапазон:

Пример-7: За цикъл с обхват

Алтернативата на командата seq е range. Можете да използвате range in for цикъл за генериране на последователност от числа като seq. Напишете следния код в bash файл с име sq2.bash . Цикълът ще повтори 5 пъти и ще отпечата квадратния корен на всяко число във всяка стъпка.

#!/bin/bash
занв {1..5}
направете
((резултат= n*н))
изхвърлен $ n квадрат=$ резултат
Свършен

Изход:

Изпълнете командата, за да изпълните скрипта на файла.

$башsq2.bash

Пример-8: За цикъл с обхват и стойност на увеличение

По подразбиране броят се увеличава с едно на всяка стъпка в диапазона като seq. Можете също да промените стойността на увеличение в диапазона. Напишете следния код в bash файл с име sq3.bash . Цикълът for в скрипта ще повтори 5 пъти, всяка стъпка се увеличава с 2 и ще отпечата всички нечетни числа между 1 до 10.

#!/bin/bash
изхвърлен „всички нечетни числа от 1 до 10 са“
заiв {1..10..2}
направете
изхвърлен $ i;
Свършен

Изход:

Изпълнете командата, за да изпълните скрипта на файла.

$башsq3.bash

Ако искате да работите с поредицата от числа, можете да използвате някоя от опциите, показани в този урок. След като завършите този урок, ще можете да използвате командата seq и for цикъл с обхват по -ефективно във вашия bash скрипт.