Bash raspon: Kako ponoviti nizove generirane na ljusci

Bash Range How Iterate Over Sequences Generated Shell



Možete ponoviti niz brojeva u bashu na dva načina. Jedan je korištenjem slijedeće naredba, a druga je zadavanjem raspona u for loop. U slijedeće naredbom, niz započinje od jedan, broj se povećava za jedan u svakom koraku i prema zadanim postavkama ispisuje svaki broj u svakom retku do gornje granice. Ako broj počinje od gornje granice, tada se u svakom koraku smanjuje za jedan. Obično se svi brojevi tumače kao pomični zarez, ali ako niz započne s cijelim brojem, tada će se ispisati popis decimalnih cijelih brojeva. Ako se naredba seq može uspješno izvršiti, vraća 0, u suprotnom vraća bilo koji broj koji nije nula. Također možete ponoviti niz brojeva pomoću for petlje s rasponom. Oba slijedeće naredba i for petlja s rasponom prikazane su u ovom vodiču pomoću primjera.

Opcije naredbe seq:

Možeš koristiti slijedeće naredbom pomoću sljedećih opcija.







-u

Ova se opcija koristi za umetanje brojeva s početnim nulama za ispis svih brojeva jednake širine.



-f formatu

Ova se opcija koristi za ispis broja s određenim formatom. Plivajući broj može se oblikovati pomoću %f, %g i %e kao znakova konverzije. %g se koristi kao zadana vrijednost.



-s niz

Ova se opcija koristi za odvajanje brojeva nizom. Zadana vrijednost je novi redak (' n').





Primjeri naredbe seq:

Naredbu seq možete primijeniti na tri načina. Možete koristiti samo gornju granicu ili gornju i donju granicu ili gornju i donju granicu s povećanjem ili smanjenjem vrijednosti svakog koraka. Različite uporabe naredbe seq s opcijama prikazane su u sljedećim primjerima.

Primjer-1: naredba seq bez opcije

Kada se koristi samo gornja granica, tada će broj početi od 1 i povećavati se za jedan u svakom koraku. Sljedeća naredba ispisuje broj od 1 do 4.



$slijedeće 4

Izlaz:

Kada se dvije vrijednosti koriste s naredbom seq, tada će se prva vrijednost koristiti kao početni broj, a druga vrijednost kao završni broj. Sljedeća naredba ispisuje broj od 7 do 15.

$slijedeće 7 petnaest

Izlaz:

Kada ćete koristiti tri vrijednosti s naredbom seq, tada će se druga vrijednost koristiti kao vrijednost povećanja ili smanjenja za svaki korak. Za sljedeću naredbu početni broj je 10, završni broj 1 i svaki će se korak odbrojavati smanjivanjem 2.

$slijedeće 10 -2 1

Izlaz:

Primjer-2: seq s –w opcijom

Sljedeća naredba ispisat će izlaz dodavanjem vodeće nule za broj od 1 do 9.

$slijedeće -u0110

Izlaz:

Primjer-3: seq s –s opcijom

Sljedeća naredba koristi - kao separator za svaki redni broj. Niz brojeva ispisat će se dodavanjem - kao separatora.

$slijedeće -s-8

Izlaz:

Primjer -4: seq s opcijom -f

Sljedeća naredba ispisat će 10 vrijednosti datuma počevši od 1. Ovdje se opcija %g koristi za dodavanje rednog broja s drugom vrijednošću niza.

$slijedeće -f '%g/04. 2018.' 10

izlaz:

Bash raspon

Sljedeća naredba koristi se za generiranje niza brojeva s pomičnim zarezom pomoću %f. Ovdje će broj početi od 3 i povećavati se za 0,8 u svakom koraku, a posljednji broj bit će manji ili jednak 6.

$slijedeće -f '%f' 3 0,8 6

Izlaz:

Primjer-5: Zapišite niz u datoteku

Ako želite spremiti niz brojeva u datoteku bez ispisa u konzoli, tada možete koristiti sljedeće naredbe. Prva naredba ispisat će brojeve u datoteku s imenom seq.txt . Broj će generirati od 5 do 20 i povećavati se za 10 u svakom koraku. Druga naredba koristi se za pregled sadržaja datoteke seq.txt datoteka.

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

Izlaz:

Primjer-6: Korištenje seq u for petlji

Pretpostavimo da želite stvoriti datoteke s imenom fn1 do fn10 pomoću for petlje sa seq. Napravite datoteku s imenom sq1.bash i dodajte sljedeći kod. For petlja će ponavljati 10 puta pomoću naredbe seq i stvoriti 10 datoteka u nizu fn1, fn2, fn3 ... ..fn10.

#!/bin/bash
zaiu ``slijedeće 10``
čini
dodirfn.$ i
učinjeno

Izlaz:

Pokrenite sljedeće naredbe za izvršavanje koda bash datoteke i provjerite jesu li datoteke stvorene ili ne.

$bashsq1.bash
$ls

Primjeri for petlje s rasponom:

Primjer-7: For petlja s rasponom

Alternativa naredbe seq je range. Možete koristiti range in for loop za generiranje niza brojeva poput seq. Upišite bash datoteku u bash datoteku sq2.bash . Petlja će ponavljati 5 puta i ispisivati ​​kvadratni korijen svakog broja u svakom koraku.

#!/bin/bash
zanu {1..5}
čini
((proizlaziti= n*n))
izbaciti $ n kvadrat=$ rezultat
učinjeno

Izlaz:

Pokrenite naredbu za izvršavanje skripte datoteke.

$bashsq2.bash

Primjer-8: Za petlju s rasponom i vrijednošću prirasta

Prema zadanim postavkama, broj se povećava za jedan u svakom koraku u rasponu, poput seq. Također možete promijeniti vrijednost prirasta u rasponu. Upišite bash datoteku u bash datoteku sq3.bash . For petlja u skripti će ponavljati 5 puta, svaki korak se povećava za 2 i ispisuje sve neparne brojeve između 1 do 10.

#!/bin/bash
izbaciti 'svi neparni brojevi od 1 do 10 su'
zaiu {1..10..2}
čini
izbaciti $ i;
učinjeno

Izlaz:

Pokrenite naredbu za izvršavanje skripte datoteke.

$bashsq3.bash

Ako želite raditi s nizom brojeva, tada možete koristiti bilo koju od opcija prikazanih u ovom vodiču. Nakon što završite ovaj vodič, moći ćete učinkovitije koristiti naredbu seq i for petlju s rasponom u svom bash skriptu.