Range Bash

Range Bash
Puoi iterare la sequenza di numeri in bash in due modi. Uno è usando il seq comando, e un altro è specificando l'intervallo in loop. In il seq comando, la sequenza inizia da uno, il numero incrementi di uno in ciascun passaggio e stampare ogni numero in ciascuna linea fino al limite superiore per impostazione predefinita. Se il numero inizia dal limite superiore, diminuisce di uno in ogni passaggio. Normalmente, tutti i numeri sono interpretati come un punto mobile, ma se la sequenza inizia da un numero intero, i numeri interi decimali stampano. Se il comando SEQ può eseguire correttamente, allora restituisce 0; Altrimenti, restituisce qualsiasi numero diverso da zero. Puoi anche iterare la sequenza di numeri utilizzando per loop con intervallo. Entrambi seq Il comando e il ciclo con l'intervallo sono mostrati in questo tutorial usando esempi.

Le opzioni del comando SEQ:

Puoi usare il seq comando utilizzando le seguenti opzioni.
-w

Questa opzione viene utilizzata per imbottire i numeri con zeri leader per stampare tutti i numeri con uguale larghezza.
-formato f

Questa opzione viene utilizzata per stampare i numeri in un formato particolare. Il numero fluttuante può essere formattato utilizzando %f, %g e %e come caratteri di conversione. %g viene utilizzato come impostazione predefinita.
-S String

Questa opzione viene utilizzata per separare i numeri con la stringa. Il valore predefinito è una nuova linea ('\ n').

Esempi di comando seq:

Puoi applicare il comando SEQ in tre modi. È possibile utilizzare solo il limite superiore o il limite superiore e inferiore o il limite superiore e inferiore con un valore di incremento o decremento di ciascun passaggio. Usi diversi del comando SEQ con le opzioni sono mostrati nei seguenti esempi.

Esempio-1: comando SEQ senza l'opzione

Quando viene utilizzato l'unico limite superiore, il numero inizierà da 1 e incremento di uno in ogni passaggio. Il comando seguente stamperà il numero da 1 a 4.

$ seq 4

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito il comando sopra.

Quando i due valori vengono utilizzati con il comando SEQ, il primo valore verrà utilizzato come numero iniziale e il secondo valore verrà utilizzato come numero finale. Il comando seguente stamperà il numero da 7 a 15.

$ seq 7 15

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito il comando sopra.

Quando si utilizzano tre valori con il comando SEQ, il secondo valore verrà utilizzato come valore incremento o decremento per ogni passaggio. Per il seguente comando, il numero di partenza è 10, il numero finale è 1 e ogni passaggio verrà conteggiato decretando 2.

$ seq 10 -2 1

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito il comando sopra.

Esempio -2: SEQ con opzione -w

Il comando seguente stamperà l'output aggiungendo lo zero conducente per il numero da 1 a 10.

$ seq -w 01 10

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il comando sopra.

Esempio -3: SEQ con opzione -s

Il comando seguente utilizza "-" come separatore per ciascun numero di sequenza. La sequenza di numeri verrà stampata aggiungendo "-" come separatore.

$ seq -s - 8

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito il comando sopra.

Esempio -4: SEQ con opzione -F

Il comando seguente stamperà 10 valori della data a partire da 1. Qui, l'opzione "%g" viene utilizzata per aggiungere numeri di sequenza con altri valori di stringa.

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

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito il comando sopra.

Il seguente comando viene utilizzato per generare la sequenza di numeri a punto mobile usando "%f". Qui, il numero inizierà da 3 e incremento di 0.8 in ogni passaggio e l'ultimo numero sarà inferiore o uguale a 6.

$ seq -f "%f" 3 0.8 6

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito il comando sopra.

Esempio-5: scrivi la sequenza in un file

Se si desidera salvare la sequenza di numeri in un file senza stampare nella console, è possibile utilizzare i seguenti comandi. Il primo comando stamperà i numeri su un file chiamato "seq.TXT". Il numero genererà da 5 a 20 e incremento di 10 in ogni passaggio. Il secondo comando stamperà il contenuto del "seq.TXT"File nel terminale.

$ seq 5 10 20 | gatto> seq.TXT
$ cat seq.TXT

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito il comando sopra.

Esempio-6: utilizzo di "seq" per creare il nome file

Supponiamo di voler creare file denominati da FN1 a FN10 utilizzando per loop con seq. Crea un file chiamato "SQ1.bash ”e aggiungi il seguente codice. Per loop iterirà per 10 volte usando il comando "SEQ" e creerà 10 file nella sequenza FN1, FN2, FN3 ... FN10.

#!/Bin/Bash
# Genera 10 numeri di sequenza
per me in 'seq 10'
Fare
# Crea il nome file
toccare fn $ i
Fatto

Esegui i seguenti comandi per eseguire il codice del file bash e verificare se i file sono creati o meno.

$ Bash SQ1.Bash
$ ls

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito i comandi sopra.

Esempi di per loop con gamma:

L'alternativa del comando "seq" è l'intervallo. È possibile utilizzare Range in for Loop per generare la sequenza di numeri come "seq". L'espressione della gamma è definita utilizzando staffe ricci e doppi punti. La sintassi dell'espressione dell'intervallo è mostrata di seguito.

Sintassi:

Start ... Stop [… increment]

Qui, il valore del Inizio E Fermare può essere qualsiasi intero o carattere positivo. Questi valori sono obbligatori per la definizione dell'espressione dell'intervallo e separati da doppi punti. Il valore del Incremento può essere qualsiasi intero positivo o negativo ed è facoltativo. Questo valore è definito dopo Fermare valore con doppi punti. Diversi usi dell'espressione dell'intervallo hanno mostrato nei seguenti esempi.

Esempio-7: usando l'intervallo con i valori di avvio e arresto

Crea un file bash chiamato "sq2.Bash"Con il seguente codice. Il ciclo iterirà per 5 volte e stamperà la radice quadrata di ogni numero in ogni iterazione.

#!/Bin/Bash
# Genera la serie di numeri da 1 a 5
per n in 1 ... 5
Fare
# Calcola la radice quadrata
((risultato = n*n))
# Stampa il valore quadrato
echo $ n quadrat = $ risultato
Fatto

Esegui il comando seguente per eseguire lo script sopra.

$ Bash SQ2.Bash

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito lo script.

Esempio-8: usando l'intervallo con valore di incremento positivo

Per impostazione predefinita, il numero è incrementato di uno in ogni fase in un intervallo come seq. Puoi anche modificare il valore di incremento nell'intervallo. Scrivi il seguente codice in un file bash chiamato "sq3.Bash". Il loop nella sceneggiatura iterirà 5 volte; Ogni passaggio è incrementato di 2 e stampare tutti i numeri dispari tra 1 e 10.

#!/Bin/Bash
Echo "Tutti i numeri dispari da 1 a 10 sono"
# Genera numeri dispari da 1 a 10
Per I in 1… 10… 2
Fare
# Stampa il valore
echo $ i;
Fatto

Esegui il comando seguente per eseguire lo script sopra.

$ Bash SQ3.Bash

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script.

Esempio-9: usando l'intervallo con lo zero leader

La sequenza di numeri con zero leader può essere generata anche usando l'intervallo. Crea un file bash denominato SEQ4.Bash con il seguente script per generare cinque numeri sequenziali con lo zero conducente da 1 a 5 aggiungendo la stringa "ID-" nella parte anteriore di ciascun numero.

#!/Bin/Bash
Echo "Genera i valori ID:"
# Definire il valore iniziale dell'intervallo con lo zero leader
per i in 01… 5
Fare
# Stampa il valore con 'id-'
echo "id- $ i"
Fatto

Esegui il comando seguente per eseguire lo script sopra.

$ Bash SQ4.Bash

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito lo script.

Esempio-10: usando l'intervallo con valore di incremento negativo

Crea un file bash denominato SEQ5.Bash con il seguente script per generare sei numeri sequenziali in ordine decrescente a partire da 10 e decrementato di 2 in ogni passaggio.

#!/Bin/Bash
Echo "Genera numeri pari in ordine decrescente:"
# Definire il valore iniziale dell'intervallo con un valore di incremento negativo
Per I in 10… 0… -2
Fare
# Stampa il valore con 'id-'
echo "Il valore è $ i"
Fatto

Esegui il comando seguente per eseguire lo script sopra.

$ Bash SQ5.Bash

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito lo script.

Esempio-11: generare numeri sequenziali con valori di carattere e numeri

Crea un file bash denominato SEQ6.Bash con il seguente script per generare output in base a due valori di intervallo. Il ciclo esterno genererà tre caratteri da A a C e il ciclo interno genererà tre numeri da 1 a 3.

#!/Bin/Bash
Echo "La serie sequenziale con alfabeto e numero:"
# Definisci la gamma con alfabeti
per val1 in a ... c
Fare
# Definisci l'intervallo con i numeri
per val2 in 01… 3
Fare
# Stampa il valore concedendo l'alfabeto e il numero
Echo $ Val1 $ Val2
Fatto
Fatto

Esegui il comando seguente per eseguire lo script sopra.

$ Bash SQ6.Bash

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito lo script.

Esempio-12: uso dell'intervallo con prefisso e suffisso

Crea un file bash denominato SEQ7.Bash con il seguente script per generare 5 nomi di file aggiungendo prefisso e suffisso con l'intervallo di numeri. Nella sceneggiatura, "profilo"è il valore del prefisso e".png'è il valore del suffisso.

#!/Bin/Bash
Echo "La serie di file di file è:"
# Genera cinque file di file con l'estensione 'png'
per il nome nel profilo 1… 5.png; Fare
# Stampa il nome file
echo "nome file: $ name"
Fatto

Esegui il comando seguente per eseguire lo script sopra.

$ Bash SQ7.Bash

Produzione:
Verrà visualizzato il seguente output dopo aver eseguito lo script.

Conclusione:

In questo tutorial sono stati mostrati due modi per generare la sequenza di numeri. Un modo è il comando "seq", e un altro modo è usare l'intervallo con loop. Gli utenti Bash saranno in grado di generare in modo efficiente la sequenza di numeri dopo aver praticato gli esempi di questo tutorial.