Bash Range: Hur man itererar över sekvenser som genereras på skalet

Bash Range How Iterate Over Sequences Generated Shell



Du kan iterera sekvensen av siffror i bash på två sätt. En är genom att använda seq kommando och en annan är genom att ange intervallet för loop. I seq kommandot börjar sekvensen från en, antalet ökar med ett i varje steg och skriver ut varje nummer i varje rad upp till den övre gränsen som standard. Om antalet börjar från övre gränsen minskar det med en i varje steg. Normalt tolkas alla tal som flytande men om sekvensen startar från ett heltal skrivs listan över decimaltal ut. Om seq-kommandot kan köras framgångsrikt returnerar det 0, annars returnerar det ett nummer som inte är noll. Du kan också iterera sekvensen med siffror med loop med intervall. Både seq kommando och för loop med intervall visas i den här självstudien med hjälp av exempel.

Alternativen för seq -kommandot:

Du kan använda seq kommando genom att använda följande alternativ.







-i

Det här alternativet används för att stoppa siffrorna med ledande nollor för att skriva ut alla nummer med samma bredd.



-f -format

Detta alternativ används för att skriva ut nummer med ett visst format. Flytande tal kan formateras med %f, %g och %e som konverteringstecken. %g används som standard.



-s sträng

Detta alternativ används för att separera siffrorna med sträng. Standardvärdet är newline (‘ n’).





Exempel på seq -kommando:

Du kan använda seq -kommandot på tre sätt. Du kan bara använda övre gräns eller övre och nedre gräns eller övre och nedre gräns med öknings- eller minskningsvärde för varje steg. Olika användningsområden för kommandot seq med alternativ visas i följande exempel.

Exempel-1: seq-kommando utan alternativ

När endast den övre gränsen används börjar antalet från 1 och ökar med en i varje steg. Följande kommando kommer att skriva ut numret från 1 till 4.



$seq 4

Produktion:

När de två värdena används med seq -kommandot kommer det första värdet att användas som startnummer och det andra värdet kommer att användas som slutnummer. Följande kommando kommer att skriva ut numret från 7 till 15.

$seq 7 femton

Produktion:

När du kommer att använda tre värden med seq -kommando kommer det andra värdet att användas som öknings- eller minskningsvärde för varje steg. För följande kommando är startnumret 10, slutnummer 1 och varje steg räknas genom att minska 2.

$seq 10 -2 1

Produktion:

Exempel-2: seq med –w alternativ

Följande kommando kommer att skriva ut utmatningen genom att lägga till den främsta nollan för talet från 1 till 9.

$seq -i0110

Produktion:

Exempel-3: seq med –s alternativ

Följande kommando använder - som separator för varje sekvensnummer. Nummerföljden skrivs ut genom att lägga till - som separator.

$seq -s-8

Produktion:

Exempel -4: seq med -f alternativ

Följande kommando kommer att skriva ut 10 datumvärden från och med 1. Här används alternativet %g för att lägga till sekvensnummer med andra strängvärden.

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

produktion:

Bash Range

Följande kommando används för att generera sekvensen med flytpunktsnummer med %f. Här börjar talet från 3 och ökar med 0,8 i varje steg och det sista talet är mindre än eller lika med 6.

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

Produktion:

Exempel-5: Skriv sekvensen i en fil

Om du vill spara nummersekvensen i en fil utan att skriva ut i konsolen kan du använda följande kommandon. Det första kommandot skriver ut siffrorna till en fil med namnet sek.txt . Antalet kommer att generera från 5 till 20 och öka med 10 i varje steg. Det andra kommandot används för att se innehållet i sek.txt fil.

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

Produktion:

Exempel-6: Använda seq in för loop

Anta att du vill skapa filer med namnet fn1 till fn10 med hjälp av loop med seq. Skapa en fil med namnet sq1.bash och lägg till följande kod. För loop kommer att iterera 10 gånger med kommandot seq och skapa 10 filer i sekvensen fn1, fn2, fn3 ... ..fn10.

#!/bin/bash
förii ''seq 10''
do
Rörfn.$ i
Gjort

Produktion:

Kör följande kommandon för att köra bash -filens kod och kontrollera att filerna är skapade eller inte.

$våldsamt slagsq1.bash
$ls

Exempel på för loop med intervall:

Exempel-7: För slinga med räckvidd

Alternativet för seq -kommandot är intervall. Du kan använda intervallet för loop för att generera sekvens av nummer som seq. Skriv följande kod i en bash -fil med namnet sq2.bash . Slingan kommer att iterera fem gånger och skriva ut kvadratroten för varje nummer i varje steg.

#!/bin/bash
förni {1..5}
do
((resultat= n*n))
kastade ut $ n fyrkant=$ resultat
Gjort

Produktion:

Kör kommandot för att köra skriptet för filen.

$våldsamt slagsq2.bash

Exempel-8: För slinga med intervall och inkrementvärde

Som standard ökas antalet med en i varje steg i intervallet som seq. Du kan också ändra inkrementvärdet i intervallet. Skriv följande kod i en bash -fil med namnet sq3.bash . For -slingan i skriptet kommer att iterera fem gånger, varje steg ökas med 2 och skriver ut alla udda tal mellan 1 till 10.

#!/bin/bash
kastade ut 'alla udda tal från 1 till 10 är'
förii {1..10..2}
do
kastade ut $ i;
Gjort

Produktion:

Kör kommandot för att köra skriptet för filen.

$våldsamt slagsq3.bash

Om du vill arbeta med nummersekvensen kan du använda något av alternativen som visas i den här självstudien. Efter att ha slutfört denna handledning kommer du att kunna använda seq -kommandot och för loop med räckvidd mer effektivt i ditt bash -skript.