<Precedenti | Contenuti | Succ.>
Lettura di file con loop
while e fino a che possono elaborare l'input standard. Ciò consente di elaborare i file con cicli while e fino a quando. Nell'esempio seguente, mostreremo il contenuto del file distros.txt utilizzato nei capitoli precedenti:
#! / Bin / bash
# while-read: legge le righe da un file mentre legge il rilascio della versione distro; fare
printf "Distro: %s\tVersione: %s\tRilasciato: %s\n" \
$ distribuzione \
$versione \
$rilascio completato < distros.txt
#! / Bin / bash
# while-read: legge le righe da un file mentre legge il rilascio della versione distro; fare
printf "Distro: %s\tVersione: %s\tRilasciato: %s\n" \
$ distribuzione \
$versione \
$rilascio completato < distros.txt
Per reindirizzare un file al ciclo, posizioniamo l'operatore di reindirizzamento dopo il fatto dichiarazione. Il ciclo userà read per inserire i campi dal file reindirizzato. Il read Il comando uscirà dopo che ogni riga è stata letta, con uno stato di uscita zero fino al raggiungimento della fine del file. A quel punto, uscirà con uno stato di uscita diverso da zero, terminando così il ciclo. È anche possibile convogliare l'input standard in un loop:
#! / Bin / bash
# while-read2: legge le righe da un file
ordina -k 1,1 -k 2n distros.txt | durante la lettura della versione della distribuzione; do printf "Distro: %s\tVersione: %s\tRilasciato: %s\n" \
$ distribuzione \
$versione \
$rilascio
fatto
#! / Bin / bash
# while-read2: legge le righe da un file
ordina -k 1,1 -k 2n distros.txt | durante la lettura della versione della distribuzione; do printf "Distro: %s\tVersione: %s\tRilasciato: %s\n" \
$ distribuzione \
$versione \
$rilascio
fatto
Qui prendiamo l'output di sorta comando e visualizzare il flusso di testo. Tuttavia, è importante ricordare che poiché una pipe eseguirà il ciclo in una subshell, tutte le variabili create o assegnate all'interno del ciclo andranno perse al termine del ciclo.