Obseg basov: Kako ponoviti zaporedja, ustvarjena v lupini

Bash Range How Iterate Over Sequences Generated Shell



Zaporedje števil v bash lahko ponovite na dva načina. Eden je z uporabo seq ukaz, drugi pa z podajanjem obsega v zanki for. V seq ukaz, zaporedje se začne od enega, število se v vsakem koraku poveča za eno in privzeto natisne vsako številko v vsaki vrstici do zgornje meje. Če se število začne od zgornje meje, se v vsakem koraku zmanjša za eno. Običajno se vsa števila razlagajo kot plavajoča vejica, če pa se zaporedje začne s celim številom, se bo natisnil seznam decimalnih celih števil. Če se ukaz seq lahko uspešno izvede, vrne 0, sicer vrne katero koli število, ki ni nič. Zaporedje števil lahko ponovite tudi z zanko for z obsegom. Oboje seq ukaz in zanka for z obsegom sta prikazana v tej vadnici z uporabo primerov.

Možnosti ukaza seq:

Lahko uporabiš seq ukaz z naslednjimi možnostmi.







-v

Ta možnost se uporablja za vnos številk z začetnimi ničlami ​​za tiskanje vseh številk z enako širino.



-f formatu

Ta možnost se uporablja za tiskanje številk v določeni obliki. Plavajoče število je mogoče oblikovati z uporabo %f, %g in %e kot pretvorbenih znakov. %g se uporablja privzeto.



-niz

Ta možnost se uporablja za ločevanje števil z nizom. Privzeta vrednost je nova vrstica (' n').





Primeri ukaza seq:

Ukaz seq lahko uporabite na tri načine. Uporabite lahko le zgornjo mejo ali zgornjo in spodnjo mejo ali zgornjo in spodnjo mejo z vrednostjo povečanja ali zmanjšanja vsakega koraka. V naslednjih primerih so prikazane različne uporabe ukaza seq z možnostmi.

Primer-1: ukaz seq brez možnosti

Ko se uporablja samo zgornja meja, se bo število začelo od 1 in se v vsakem koraku povečalo za eno. Naslednji ukaz bo natisnil številko od 1 do 4.



$seq 4

Izhod:

Ko se dve vrednosti uporabljata z ukazom seq, bo prva vrednost uporabljena kot začetna številka, druga vrednost pa kot končna številka. Naslednji ukaz bo natisnil številko od 7 do 15.

$seq 7 petnajst

Izhod:

Ko boste z ukazom seq uporabili tri vrednosti, bo druga vrednost uporabljena kot prirast ali zmanjšanje vrednosti za vsak korak. Za naslednji ukaz je začetna številka 10, končna številka 1 in vsak korak se šteje z zmanjšanjem 2.

$seq 10 -2 1

Izhod:

Primer-2: seq z možnostjo -w

Naslednji ukaz bo natisnil izpis z dodajanjem ničle za število od 1 do 9.

$seq -v0110

Izhod:

Primer 3: seq z možnostjo –s

Naslednji ukaz uporablja - kot ločilo za vsako zaporedno številko. Zaporedje številk se natisne z dodajanjem - kot ločilo.

$seq -s-8

Izhod:

Primer 4: seq z možnostjo -f

Naslednji ukaz bo natisnil 10 vrednosti datuma, ki se začnejo od 1. Tu se možnost %g uporablja za dodajanje zaporedne številke z drugo vrednostjo niza.

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

izhod:

Bash Range

Naslednji ukaz se uporablja za ustvarjanje zaporedja številke s plavajočo vejico z uporabo %f. Tu se bo število začelo od 3 in povečalo za 0,8 v vsakem koraku, zadnja številka pa bo manjša ali enaka 6.

$seq -f '%f' 3 0,8 6

Izhod:

Primer-5: Zapišite zaporedje v datoteko

Če želite shraniti zaporedje številk v datoteko brez tiskanja v konzoli, lahko uporabite naslednje ukaze. Prvi ukaz bo natisnil številke v datoteko z imenom seq.txt . Število bo ustvarilo od 5 do 20 in se v vsakem koraku povečalo za 10. Drugi ukaz se uporablja za ogled vsebine seq.txt mapa.

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

Izhod:

Primer-6: Uporaba seq v zanki for

Recimo, da želite ustvariti datoteke z imenom fn1 do fn10 z uporabo zanke for s seq. Ustvarite datoteko sq1.bash in dodajte naslednjo kodo. For zanka bo 10 -krat ponavljala z ukazom seq in ustvarila 10 datotek v zaporedju fn1, fn2, fn3 ... ..fn10.

#!/bin/bash
zajazv ''seq 10''
naredi
dotikfn.$ i
Končano

Izhod:

Zaženite naslednje ukaze, da izvedete kodo datoteke bash in preverite, ali so datoteke ustvarjene ali ne.

$bashsq1.bash
$ls

Primeri zanke for z obsegom:

Primer 7: Za zanko z obsegom

Alternativa ukaza seq je range. Z zanko range in for lahko ustvarite zaporedje števil, kot je seq. Naslednjo kodo zapišite v bash datoteko z imenom sq2.bash . Zanka se bo petkrat ponavljala in v vsakem koraku natisnila kvadratni koren vsake številke.

#!/bin/bash
zanv {1..5}
naredi
((rezultat= n*n))
vrgel ven $ n kvadrat=$ rezultat
Končano

Izhod:

Zaženite ukaz za izvedbo skripta datoteke.

$bashsq2.bash

Primer-8: Za zanko z vrednostjo obsega in prirasta

Privzeto se število v vsakem koraku v razponu, na primer seq. V razponu lahko spremenite tudi vrednost prirastka. Naslednjo kodo zapišite v bash datoteko z imenom sq3.bash . Zanka for v skriptu se bo ponavljala 5 -krat, vsak korak se poveča za 2 in natisne vsa liha števila med 1 in 10.

#!/bin/bash
vrgel ven 'vse lihe številke od 1 do 10 so'
zajazv {1..10..2}
naredi
vrgel ven $ i;
Končano

Izhod:

Zaženite ukaz za izvedbo skripta datoteke.

$bashsq3.bash

Če želite delati z zaporedjem številk, lahko uporabite katero koli možnost, prikazano v tej vadnici. Po zaključku te vadnice boste lahko učinkoviteje uporabili ukaz seq in for zanka z obsegom v svojem bash skriptu.