Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Uscire da un ciclo

bash fornisce due comandi incorporati che possono essere usati per controllare il flusso del programma all'interno dei loop. Il comando break termina immediatamente un ciclo e il controllo del programma riprende con l'istruzione successiva che segue il ciclo. Il comando continue fa sì che il resto del ciclo venga saltato e il controllo del programma riprende con la successiva iterazione del ciclo. Qui vediamo una versione del programma while-menu che incorpora sia break che continue:


#! / Bin / bash


# while-menu2: un programma di informazioni di sistema guidato da menu DELAY=3 # Numero di secondi per visualizzare i risultati

mentre vero; fare

pulire campo

gatto <<- _EOF_

Si prega di selezionare:


1. Visualizza le informazioni di sistema

2. Visualizza spazio su disco

3. Visualizza l'utilizzo dello spazio domestico

0. Esci


_EOF_

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


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

echo "Hostname: $HOSTNAME" uptime

dormi $RITARDO

continua

fi

if [[ $REPLY == 2 ]]; quindi df -h

dormi $RITARDO

continua

fi

if [[ $REPLY == 3 ]]; poi

if [[ $(id -u) -eq 0 ]]; poi

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

altro

#! / Bin / bash


# while-menu2: un programma di informazioni di sistema guidato da menu DELAY=3 # Numero di secondi per visualizzare i risultati

mentre vero; fare

pulire campo

gatto <<- _EOF_

Si prega di selezionare:


1. Visualizza le informazioni di sistema

2. Visualizza spazio su disco

3. Visualizza l'utilizzo dello spazio domestico

0. Esci


_EOF_

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


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

echo "Hostname: $HOSTNAME" uptime

dormi $RITARDO

continua

fi

if [[ $REPLY == 2 ]]; quindi df -h

dormi $RITARDO

continua

fi

if [[ $REPLY == 3 ]]; poi

if [[ $(id -u) -eq 0 ]]; poi

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

altro


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

fi

dormi $RITARDO

continua

fi

if [[ $REPLY == 0 ]]; poi rompere

fi

altro

echo "Voce non valida." dormi $RITARDO

fi fatto

echo "Programma terminato."

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

fi

dormi $RITARDO

continua

fi

if [[ $REPLY == 0 ]]; poi rompere

fi

altro

echo "Voce non valida." dormi $RITARDO

fi fatto

echo "Programma terminato."


In questa versione dello script, abbiamo impostato un ciclo infinito (uno che non termina mai da solo) utilizzando il vero comando per fornire uno stato di uscita a while. Da vero uscirà sempre con uno stato di uscita pari a zero, il ciclo non finirà mai. Questa è una tecnica di scripting sorprendentemente comune. Poiché il ciclo non finirà mai da solo, sta al programmatore fornire un modo per uscire dal ciclo quando sarà il momento giusto. In questo script, il rompere Il comando viene utilizzato per uscire dal ciclo quando viene scelta la selezione "0". Il Continua comando è stato incluso alla fine delle altre scelte di script per consentire un'esecuzione più efficiente. Usando continua, lo script ignorerà il codice non necessario quando viene identificata una selezione. Ad esempio, se viene scelta e identificata la selezione "1", non c'è motivo di testare le altre selezioni.


 

Il miglior sistema operativo cloud computing su OnWorks: