GNU/Linux >> Linux Esercitazione >  >> Linux

Suggerimento per professionisti:per, mentre e fino a loop

LIVELLO:SYSADMIN / TEMPO:1-2 min.

Ecco alcuni pratici esempi di riferimento rapido a cui tornare facilmente se è necessario utilizzare per, mentre e fino a loop negli script della shell bash. Questo è perfetto per aggiungere un segnalibro e tornare in un secondo momento. Dimentico sempre le sottili differenze di sintassi che bash ha rispetto ad altri linguaggi che uso, ad esempio C, PHP, Python ecc.

Prima di mostrarti gli esempi, vale la pena sapere quando utilizzare ogni tipo di loop:

  • Il per loop è leggermente diverso dagli altri linguaggi di programmazione. Fondamentalmente, ti consente di scorrere una serie di elementi all'interno di una stringa.
  • Il mentre loop esegue gli elementi da eseguire se l'espressione di controllo è vera e si interrompe solo quando è falsa (o viene trovata un'interruzione esplicita all'interno del codice eseguito.
  • Il fino loop è quasi identico al ciclo while, tranne per il fatto che il codice viene eseguito mentre l'espressione di controllo restituisce false.

PER Esempio 1:ripetizione semplice

Questo semplice tipo di ciclo conta semplicemente i valori forniti. In questo caso, inizia da 1 e arriva a 5. È la ripetizione più elementare.


#!/bin/bash
for i in 1 2 3 4 5
do
echo "Hello, I've done this loop $i times"
done

PER Esempio 2:Ripeti un'azione 50 volte:

La ripetizione può essere eseguita partendo da un valore e incrementando un contatore. È come faresti con linguaggi di programmazione più convenzionali. L'unica cosa che devi ricordare è usare il (( per esprimere un calcolo numerico.


#!/bin/bash
for ((i=1;i<=50;i++));
do
# your command, eg: echo $i
done

Questo esempio fa esattamente quello che dovrebbe fare. Ma ci sono modi più semplici che non devono farti ricordare la doppia parentesi leggermente esoterica. Dai un'occhiata agli esempi seguenti.

PER Esempio 3:Lavorare con intervalli numerici

Intervalli

A volte potrebbe essere necessario impostare un valore di passo (ad esempio, contare per due o contare all'indietro). Tieni presente che bash versione 3.0+ ha un supporto integrato per l'utilizzo degli intervalli, ma non è molto pratico per gli intervalli di passi:

#!/bin/bash
for i in {1..5}
do
echo "This is the $i iteration of this loop"
done

Passo:

La maggior parte delle moderne distribuzioni Linux esegue Bash v4.0+, che ha il supporto integrato per l'impostazione di un valore di passaggio utilizzando {START.. FINE.. INCREMENT} sintassi:

#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
for i in {0..10..2}
do
echo "This is the $i iteration of this loop"
done

Uscita:

This is the 0 iteration of this loop
This is the 2 iteration of this loop
This is the 4 iteration of this loop
This is the 6 iteration of this loop
This is the 8 iteration of this loop
This is the 10 iteration of this loop

PER Esempio 4:Lavorare su parole, argomenti e output di comandi

In precedenza abbiamo lavorato su intervalli numerici, ma il problema è che il ciclo FOR valuta argomenti piuttosto che numeri, un numero è semplicemente un . Ciò significa che puoi dirgli di operare su ogni iterazione basata su riga. Ad esempio, quanto segue eseguirà il comando ls. Per ogni elemento che vede farà eco alla linea. Nota che funziona su una stringa di parole, non su un elenco di righe. Quindi, se usi ls -l, non fornirà un output utile, nota anche che se hai nomi di file con spazi, li interpreta come parole diverse (argomenti forniti a per ).

#!/bin/bash
for i in $( ls *txt ); do
echo item: $i
done

WHILE Esempio:

Mentre essenzialmente emula il linguaggio di programmazione più classico per la struttura del ciclo:

#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done

FINO A Esempio:


#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done


Linux
  1. Bash For Loop Guida ed esempi

  2. Suggerimenti e trucchi per curl e wget

  3. Bash Beginner Series #8:Loop in Bash

  4. Esempi di Bash For Loop e While Loop

  5. Supporto Big Endian e Little Endian per l'ordinamento dei byte

Bash For Loop

Bash fino a Loop

Bash pausa e continua

Bash Scripting - Mentre e fino a ciclo spiegato con esempi

Bash For Loops con esempi

Bash Scripting Part2 – Cicli For e While con esempi