Questa guida dimostra una linea per i loop in bash.
Bash per loop
Il bash presenta più tipi di loop - per, mentre e fino a. Ogni tipo di loop viene fornito con una struttura diversa. Tuttavia, i fondamenti rimangono gli stessi. Per i principianti, questa guida spiega approfondita su vari anelli di bash e su come implementarli.
Come suggerisce il titolo di questa guida, il nostro obiettivo sarà sul ciclo. Mentre per il loop richiede generalmente più righe, possiamo rappresentarlo in una singola riga se il ciclo è abbastanza semplice. Questo processo, tuttavia, richiede una comprensione dei fondamenti di Bash per un ciclo.
Per eseguire i nostri codici bash, abbiamo bisogno di uno script di shell. Ho già uno script fittizio per eseguire i nostri codici.
$ gatto fittizio.shPer la struttura del ciclo
Questa è la struttura di base del bash per loop.
per in [elenco]
Fare
Fatto
Ecco un esempio rapido per implementare questa struttura.
per i in 1… 5
Fare
Echo "Numero: $ i"
Fatto
Bash supporta anche C-Style per loop. Se hai uno sfondo di programmazione in C, allora C-Style per loop sarà facile da capire.
per ((; ; ))
Fare
Fatto
Mettiamo in azione lo stile C per loop.
per ((i = 1; i <= 5; i++)); do
Echo "Numero: $ i"
Fatto
Per loop può anche funzionare con i file. Nell'esempio seguente, il loop cercherà tutte le partizioni sotto il disco "/dev/sda" e stamperà tutto.
per i in /dev /sda*; Fare
echo "$ i"
Fatto
Una riga per loop
Con le basi coperte, ora possiamo comprimere per i loop in una singola linea. Fondamentalmente, elimineremo le nuove linee dall'intero codice Loop. Possiamo anche eseguire questi loop direttamente dalla riga di comando.
Compriamo il primo esempio. Se eliminiamo tutte le nuove righe, il codice sembrerà così.
$ per i in 1… 5; fare eco "numero: $ i"; Fatto
Come puoi vedere, tutte le nuove righe vengono rimosse. Invece, quelle nuove linee sono sostituite con punti e virgola (;).
Possiamo fare lo stesso con C-Style per i loop.
$ per ((i = 1; i <= 5; i++)); do echo "number: $i"; done
Dai un'occhiata al seguente esempio. Tutti i file di configurazione all'interno "/ecc."Sarà copiato come backup della directory" ~/backup ".
$ per i in /etc /*.conf; fare cp $ i/home/viktor/backup; Fatto
Per loop con condizionali
In molti casi, un ciclo conterrà condizionali per prendere decisioni in vari punti della ripetizione.
Qui, quanto segue per loop stamperà tutti i numeri pari all'interno di un intervallo fisso.
per i in 1… 10; Fare
if [$ ((i%2)) -eq 0]; Poi
echo "$ i pari"
fi
Fatto
È possibile esprimere l'intero ciclo in una singola riga. Proprio come prima, sostituire tutta la nuova linea con i punti e virgola (;).
$ per i in 1… 10; fare se [$ ((i%2)) -eq 0]; Quindi echo "$ i pari"; fi; Fatto
Si consiglia di scrivere prima il ciclo con una spaziatura corretta. Una volta confermato che il ciclo funziona correttamente, possiamo salvarlo in modo sicuro in una singola linea.
Esempi vari
Ecco una manciata di una riga per loop per riferimento.
$ per i in 1 2 3 4 5; fare eco "numero: $ i"; Fatto
$ per I in GPU PSU RAM della CPU Motherboard; fare eco "parte del computer: $ i"; Fatto
Il prossimo esempio sarà di un ciclo infinito.
$ per ((;;)); fare eco "all'infinito!"; Fatto
Pensiero finale
Questa guida dimostra vari esempi efficaci a una linea per loop. È molto facile trasformare un ciclo normale in una riga. Speriamo che, dopo aver praticato questi esempi, i lettori avranno una buona idea di usare Bash per loop in una riga.
Felice calcolo!