Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

while

bash può esprimere un'idea simile. Supponiamo di voler visualizzare cinque numeri in sequenza:


ordine iniziale da uno a cinque. a bash lo script potrebbe essere costruito come segue:


#! / Bin / bash


# while-count: visualizza una serie di numeri count=1

while [[ $count -le 5 ]]; do echo $count count=$((count + 1))

fatto

echo "Finito."

#! / Bin / bash


# while-count: visualizza una serie di numeri count=1

while [[ $count -le 5 ]]; do echo $count count=$((count + 1))

fatto

echo "Finito."


Una volta eseguito, questo script visualizza quanto segue:



[io@linuxbox~]$ conteggio-mentre

1

2

3

4

5

Finito.

[io@linuxbox~]$ conteggio-mentre

1

2

3

4

5

Finito.


La sintassi di while il comando è:

while comandi; fare comandi; Fatto

Come if, while Valuta lo stato di uscita di un elenco di comandi. Finché lo stato di uscita è zero, esegue i comandi all'interno del ciclo. Nello script precedente, la variabile contare viene creato e gli viene assegnato un valore iniziale di 1. Il while il comando valuta lo stato di uscita del [[]] comando composto. Finché il [[]] il comando restituisce uno stato di uscita pari a zero, i comandi all'interno del ciclo vengono eseguiti. Alla fine di ogni ciclo, il [[]] il comando viene ripetuto. Dopo cinque iterazioni del ciclo, il valore di contare è aumentato a 6, il [[]] Il comando non restituisce più uno stato di uscita pari a zero e il ciclo termina. Il programma continua con l'istruzione successiva al ciclo.

Possiamo usare un file mentre il ciclo per migliorare il menu di lettura programma del capitolo precedente:


#! / Bin / bash


# while-menu: un programma di informazioni di sistema guidato da menu

#! / Bin / bash


# while-menu: un programma di informazioni di sistema guidato da menu


RITARDO=3 # Numero di secondi per visualizzare i risultati


mentre [[ $REPLY != 0 ]]; fai

pulire campo

gatto <<- _EOF_

Seleziona:


1. Visualizza le informazioni di sistema

2. Visualizza lo spazio su disco

3. Visualizza l'utilizzo dello spazio domestico

0. Esci


_EOF_

leggi -p "Inserisci selezione [0-3] > "


se [[ $REPLY =~ ^[0-3]$ ]]; allora se [[ $REPLY == 1 ]]; allora

echo "Nome host: $HOSTNAME" tempo di attività

sonno $DELAY

fi

se [[ $REPLY == 2 ]]; allora df -h

sonno $DELAY

fi

se [[ $REPLY == 3 ]]; allora

se [[ $(id -u) -eq 0 ]]; allora

echo "Utilizzo dello spazio domestico (tutti gli utenti)" du -sh /home/*

altro

echo "Utilizzo dello spazio domestico ($USER)" du -sh $HOME

fi

sonno $DELAY

fi

altro

echo "Voce non valida."

sonno $DELAY

fi

fatto

echo "Programma terminato."

RITARDO=3 # Numero di secondi per visualizzare i risultati


mentre [[ $REPLY != 0 ]]; fai

pulire campo

gatto <<- _EOF_

Seleziona:


1. Visualizza le informazioni di sistema

2. Visualizza lo spazio su disco

3. Visualizza l'utilizzo dello spazio domestico

0. Esci


_EOF_

leggi -p "Inserisci selezione [0-3] > "


se [[ $REPLY =~ ^[0-3]$ ]]; allora se [[ $REPLY == 1 ]]; allora

echo "Nome host: $HOSTNAME" tempo di attività

sonno $DELAY

fi

se [[ $REPLY == 2 ]]; allora df -h

sonno $DELAY

fi

se [[ $REPLY == 3 ]]; allora

se [[ $(id -u) -eq 0 ]]; allora

echo "Utilizzo dello spazio domestico (tutti gli utenti)" du -sh /home/*

altro

echo "Utilizzo dello spazio domestico ($USER)" du -sh $HOME

fi

sonno $DELAY

fi

altro

echo "Voce non valida."

sonno $DELAY

fi

fatto

echo "Programma terminato."


Racchiudendo il menu in un ciclo while, possiamo far sì che il programma ripeta la visualizzazione del menu dopo ogni selezione. Il ciclo continua finché REPLY non è uguale a "0" e il menu viene visualizzato nuovamente, dando all'utente la possibilità di effettuare un'altra selezione. Al termine di ogni azione, un sonno il comando viene eseguito in modo che il programma si interrompa per alcuni secondi per consentire la visualizzazione dei risultati della selezione prima che lo schermo venga cancellato e il menu venga nuovamente visualizzato. Una volta REPLY è uguale a "0", indicando la selezione "esci",


il ciclo termina e l'esecuzione continua con la riga seguente fatto.


Il miglior sistema operativo cloud computing su OnWorks: