Bash per loop in una riga

Bash per loop in una riga
In qualsiasi linguaggio di programmazione o scripting, il loop è una caratteristica per eccellenza. I loop sono generalmente per eseguire un'attività ripetitiva fino a quando non viene soddisfatta una determinata condizione. Bash è un potente linguaggio di scripting che supporta tutte le principali caratteristiche di un linguaggio di scripting (compresi i loop).

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.sh

Per 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!