„Bash Range“: kaip kartoti apvalkale sukurtas sekas

Bash Range How Iterate Over Sequences Generated Shell



Galite pakartoti skaičių seką bash dviem būdais. Vienas iš jų yra naudojant sek komanda, o kita - nurodant ciklo diapazoną. In sek komandą, seka prasideda nuo vieno, skaičius padidinamas po vieną kiekviename žingsnyje ir spausdinamas kiekvienas skaičius kiekvienoje eilutėje iki viršutinės ribos pagal numatytuosius nustatymus. Jei skaičius prasideda nuo viršutinės ribos, kiekviename žingsnyje jis mažėja vienu. Paprastai visi skaičiai interpretuojami kaip slankiojo kablelio, bet jei seka prasideda nuo sveiko skaičiaus, dešimtųjų skaičių sąrašas bus išspausdintas. Jei seq komanda gali būti sėkmingai įvykdyta, ji grąžina 0, priešingu atveju grąžina bet kokį ne nulinį skaičių. Taip pat galite pakartoti skaičių seką naudodami ciklą su diapazonu. Abu sek komanda ir ciklas su diapazonu parodytas šiame vadove naudojant pavyzdžius.

Komandos seq parinktys:

Tu gali naudoti sek komandą naudodami šias parinktis.







Ši parinktis naudojama skaičiams rašyti su nuliais priekyje, kad būtų atspausdinti visi vienodo pločio skaičiai.



-f formatu

Ši parinktis naudojama numeriui spausdinti tam tikru formatu. Kintantis skaičius gali būti suformatuotas naudojant %f, %g ir %e kaip konversijos simbolius. %g naudojamas kaip numatytasis.



-eilutė

Ši parinktis naudojama atskiriant skaičius eilute. Numatytoji vertė yra nauja eilutė („ n“).





Seq komandos pavyzdžiai:

„Seq“ komandą galite taikyti trimis būdais. Galite naudoti tik viršutinę ribą arba viršutinę ir apatinę ribas arba viršutinę ir apatinę ribas su kiekvieno žingsnio didinimo ar mažinimo reikšme. Toliau pateiktuose pavyzdžiuose parodyti skirtingi komandos seq su parinktimis naudojimo būdai.

1 pavyzdys: seq komanda be pasirinkimo

Kai naudojama tik viršutinė riba, skaičius prasideda nuo 1 ir padidinamas vienu kiekviename žingsnyje. Ši komanda spausdins skaičių nuo 1 iki 4.



$sek 4

Išėjimas:

Kai abi reikšmės naudojamos su komanda seq, pirmoji vertė bus naudojama kaip pradžios numeris, o antroji vertė bus naudojama kaip pabaigos numeris. Ši komanda spausdins skaičių nuo 7 iki 15.

$sek 7 penkiolika

Išėjimas:

Kai su seq komanda naudosite tris reikšmes, antroji vertė bus naudojama kaip didinimo arba mažinimo reikšmė kiekvienam žingsniui. Šios komandos pradinis skaičius yra 10, pabaigos skaičius yra 1 ir kiekvienas žingsnis bus skaičiuojamas mažinant 2.

$sek 10 -2 1

Išėjimas:

2 pavyzdys: seq su –w parinktimi

Ši komanda spausdins išvestį, pridedant nulį skaičiui nuo 1 iki 9.

$sek 0110

Išėjimas:

3 pavyzdys: seq su –s parinktimi

Ši komanda naudojama kaip kiekvieno eilės numerio atskyriklis. Skaičių seka bus spausdinama pridedant - kaip separatorių.

$sek -s-8

Išėjimas:

4 pavyzdys: seq su parinktimi -f

Ši komanda spausdins 10 datos reikšmių, pradedant nuo 1. Čia %g parinktis naudojama norint pridėti sekos numerį su kita eilutės reikšme.

$sek -f „%g/04/2018“ 10

išėjimas:

„Bash Range“

Ši komanda naudojama generuoti slankiojo kablelio skaičių seką naudojant %f. Čia skaičius prasidės nuo 3 ir padidės 0,8 kiekviename žingsnyje, o paskutinis skaičius bus mažesnis arba lygus 6.

$sek -f „%f“ 3 0.8 6

Išėjimas:

5 pavyzdys: įrašykite seką į failą

Jei norite įrašyti skaičių seką į failą nespausdindami konsolės, galite naudoti šias komandas. Pirmoji komanda spausdins numerius į failą pavadinimu seq.txt . Skaičius sugeneruos nuo 5 iki 20 ir padidės 10 kiekviename žingsnyje. Antroji komanda naudojama peržiūrėti turinį seq.txt failą.

$ 5 10 20 | katė> sek. txt
$ cat seq.txt

Išėjimas:

6 pavyzdys: naudojant ciklą seq in

Tarkime, norite sukurti failus, pavadintus nuo fn1 iki fn10, naudodami ciklą su sek. Sukurkite failą pavadinimu sq1.bash ir pridėkite šį kodą. Ciklas kartosis 10 kartų naudodami komandą seq ir sukurs 10 failų seka fn1, fn2, fn3… ..fn10.

#!/bin/bash
dėliį ``sek 10``
daryti
paliestifn.$ i
padaryta

Išėjimas:

Vykdykite šias komandas, kad įvykdytumėte „bash“ failo kodą ir patikrintumėte, ar failai sukurti, ar ne.

$muštikv. bash
$ls

Ciklo su diapazonu pavyzdžiai:

7 pavyzdys: kilpa su diapazonu

Komandos seq alternatyva yra diapazonas. Galite naudoti diapazoną ciklui, kad sukurtumėte skaičių seką, pvz. Įrašykite šį kodą į bash failą pavadinimu sq2.bash . Ciklas kartosis 5 kartus ir kiekviename žingsnyje išspausdins kiekvieno skaičiaus kvadratinę šaknį.

#!/bin/bash
dėlnį {1..5}
daryti
((rezultatas= n*n))
išmetė $ n kvadratas=$ rezultatas
padaryta

Išėjimas:

Vykdykite komandą, kad įvykdytumėte failo scenarijų.

$muštisq2.bash

8 pavyzdys: ciklui su diapazonu ir prieaugio reikšme

Pagal numatytuosius nustatymus skaičius padidinamas vienu kiekviename žingsnio diapazone, pvz. Taip pat galite pakeisti intervalo prieaugio vertę. Įrašykite šį kodą į bash failą pavadinimu sq3.bash . Forumo kilpa formoje kartosis 5 kartus, kiekvienas žingsnis padidinamas 2 ir išspausdinami visi nelyginiai skaičiai nuo 1 iki 10.

#!/bin/bash
išmetė 'visi nelyginiai skaičiai nuo 1 iki 10 yra'
dėliį {1..10..2}
daryti
išmetė $ i;
padaryta

Išėjimas:

Vykdykite komandą, kad įvykdytumėte failo scenarijų.

$muštisq3.bash

Jei norite dirbti su skaičių seka, galite naudoti bet kurią šiame vadove parodytą parinktį. Baigę šią pamoką, „bash“ scenarijuje galėsite efektyviau naudoti komandą „seq“ ir „loop with range“.