Bash Range: Kuinka iteroida kuorissa luotujen sekvenssien yli

Bash Range How Iterate Over Sequences Generated Shell

Voit iteroida numerosarjan bashissa kahdella tavalla. Yksi on käyttämällä seuraava komento ja toinen on määrittämällä silmukan alue. Sisään seuraava komento, sarja alkaa yhdestä, luku kasvaa yhdellä jokaisessa vaiheessa ja tulostaa jokaisen rivin numeron oletusarvoisesti ylärajaan asti. Jos numero alkaa ylärajasta, se pienenee yhdellä jokaisessa vaiheessa. Normaalisti kaikki numerot tulkitaan liukulukuiksi, mutta jos sekvenssi alkaa kokonaisluvusta, desimaalilukujen luettelo tulostetaan. Jos seq-komento voidaan suorittaa onnistuneesti, se palauttaa 0, muuten se palauttaa minkä tahansa nollasta poikkeavan luvun. Voit myös iteroida numerosarjan käyttämällä silmukkaa alueella. Molemmat seuraava -komento ja silmukka, jossa on alue, näytetään tässä opetusohjelmassa esimerkkien avulla.

Seq -komennon vaihtoehdot:

Voit käyttää seuraava komentoa käyttämällä seuraavia vaihtoehtoja.

-sisään

Tätä vaihtoehtoa käytetään numeroiden kirjoittamiseen nollien eteen, jotta kaikki numerot voidaan tulostaa samalla leveydellä.



-f -muodossa

Tätä vaihtoehtoa käytetään tulostamaan numero tietyssä muodossa. Kelluva numero voidaan muotoilla käyttämällä %f, %g ja %e muunnosmerkeinä. %g on oletusarvo.



-merkkijono

Tätä vaihtoehtoa käytetään numeroiden erottamiseen merkkijonolla. Oletusarvo on uusi rivi (' n').

Esimerkkejä seq -komennosta:

Voit käyttää seq -komentoa kolmella tavalla. Voit käyttää vain ylärajaa tai ylä- ja alarajaa tai ylä- ja alarajaa kunkin vaiheen lisäys- tai vähennysarvolla. Seuraavissa esimerkeissä esitetään seq -komennon eri käyttötavat ja vaihtoehdot.

Esimerkki 1: seq-komento ilman vaihtoehtoa

Kun käytetään vain ylärajaa, numero alkaa yhdestä ja kasvaa yhdellä jokaisessa vaiheessa. Seuraava komento tulostaa numeron 1-4.



$seuraava 4

Lähtö:

Kun kahta arvoa käytetään seq -komennolla, ensimmäistä arvoa käytetään aloitusnumerona ja toista arvoa päättymisnumerona. Seuraava komento tulostaa numeron 7-15.

$seuraava 7 viisitoista

Lähtö:

Kun käytät kolmea arvoa komennolla seq, toista arvoa käytetään lisäys- tai vähennysarvona jokaisessa vaiheessa. Seuraavan komennon aloitusnumero on 10, lopetusnumero on 1 ja jokainen vaihe lasketaan pienentämällä 2.

$seuraava 10 -2 1

Lähtö:

Esimerkki 2: sekvenssi –w-vaihtoehdolla

Seuraava komento tulostaa tuloksen lisäämällä nolla eteen numeroon 1 - 9.

$seuraava -sisään0110

Lähtö:

Esimerkki 3: sekvenssi –s-vaihtoehdolla

Seuraava komento käyttää - erottimena jokaiselle järjestysnumerolle. Numerosarja tulostetaan lisäämällä - erottajaksi.

$seuraava -s-8

Lähtö:

Esimerkki 4: sekvenssi -f -vaihtoehdolla

Seuraava komento tulostaa 10 päivämääräarvoa alkaen 1: stä. Tässä %g -vaihtoehtoa käytetään lisäämään sarjanumero muiden merkkijonojen kanssa.

$seuraava -f '%g/04/2018' 10

lähtö:

Bash Range

Seuraavaa komentoa käytetään luomaan liukulukuluvun sekvenssi käyttämällä %f. Täällä numero alkaa kolmesta ja kasvaa 0,8 jokaisessa vaiheessa ja viimeinen luku on pienempi tai yhtä suuri kuin 6.

$seuraava -f '%f' 3 0.8 6

Lähtö:

Esimerkki 5: Kirjoita sekvenssi tiedostoon

Jos haluat tallentaa numerosarjan tiedostoon tulostamatta konsoliin, voit käyttää seuraavia komentoja. Ensimmäinen komento tulostaa numerot tiedostoon nimeltä seq.txt . Luku muodostuu 5: stä 20: een ja kasvaa 10: llä jokaisessa vaiheessa. Toista komentoa käytetään sisällön tarkasteluun seq.txt tiedosto.

$ 5 10 20 | kissa> seuraava tiedosto
$ cat seq.txt

Lähtö:

Esimerkki 6: Seq in -silmukan käyttäminen

Oletetaan, että haluat luoda tiedostoja nimeltä fn1 - fn10 käyttämällä silmukkaa sekvenssillä. Luo tiedosto nimeltä sq1.bash ja lisää seuraava koodi. Silmukka toistaa 10 kertaa käyttämällä komentoa seq ja luo 10 tiedostoa järjestyksessä fn1, fn2, fn3… ..fn10.

#!/bin/bash
vartenisisään ``seuraava 10``
tehdä
kosketusfn.$ i
tehty

Lähtö:

Suorita seuraavat komennot suorittaaksesi bash -tiedoston koodin ja tarkista, onko tiedostot luotu vai ei.

$lyödäsq1.bash
$ls

Esimerkkejä silmukasta, jolla on alue:

Esimerkki 7: Silmukka, jolla on alue

Vaihtoehto seq -komennolle on alue. Voit käyttää silmukan vaihteluväliä luodaksesi numerosarjan, kuten sekvenssi. Kirjoita seuraava koodi bash -tiedostoon nimeltä sq2.bash . Silmukka toistuu 5 kertaa ja tulostaa jokaisen numeron neliöjuuren jokaisessa vaiheessa.

#!/bin/bash
vartennsisään {1..5}
tehdä
((tulos= n*n))
heitti pois $ n neliö-=$ tulos
tehty

Lähtö:

Suorita komento suorittaaksesi tiedoston komentosarjan.

$lyödäsq2.bash

Esimerkki 8: Silmukka, jossa on alue ja lisäysarvo

Oletusarvoisesti numero kasvaa yhdellä kussakin alueen vaiheessa, kuten Voit myös muuttaa alueen lisäarvoa. Kirjoita seuraava koodi bash -tiedostoon nimeltä sq3.bash . Skriptin for -silmukka toistuu 5 kertaa, jokaista vaihetta lisätään 2: lla ja tulostetaan kaikki parittomat numerot 1-10.

#!/bin/bash
heitti pois 'kaikki parittomat numerot 1-10 ovat'
vartenisisään {1..10..2}
tehdä
heitti pois $ i;
tehty

Lähtö:

Suorita komento suorittaaksesi tiedoston komentosarjan.

$lyödäsq3.bash

Jos haluat työskennellä numerosarjan kanssa, voit käyttää mitä tahansa tässä opetusohjelmassa näkyvistä vaihtoehdoista. Kun olet suorittanut tämän opetusohjelman, voit käyttää seq -komentoa ja silmukkaa alueella tehokkaammin bash -skriptissäsi.