Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Custodie

In bash, viene chiamato il comando composto a scelta multipla CustodieHa la seguente sintassi:

Custodie parola in

[modello [| modello]...) comandi ;;]...

che C

Se guardiamo al menu di lettura Nel programma del Capitolo 28, vediamo la logica utilizzata per agire sulla selezione di un utente:



#! / Bin / bash

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

eco "

Seleziona:


1. Visualizza le informazioni di sistema

2. Visualizza lo spazio su disco

3. Visualizza l'utilizzo dello spazio domestico

0. Esci "

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


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

#! / Bin / bash

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

eco "

Seleziona:


1. Visualizza le informazioni di sistema

2. Visualizza lo spazio su disco

3. Visualizza l'utilizzo dello spazio domestico

0. Esci "

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


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


echo "Programma terminato." exit

fi

se [[ $REPLY == 1 ]]; allora echo "Nome host: $HOSTNAME" tempo di attività

exit

fi

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

exit

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

uscita fi

per altro

echo "Voce non valida." >&2 exit 1

fi

echo "Programma terminato." exit

fi

se [[ $REPLY == 1 ]]; allora echo "Nome host: $HOSTNAME" tempo di attività

exit

fi

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

exit

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

uscita fi

per altro

echo "Voce non valida." >&2 exit 1

fi


utilizzando Custodie, possiamo sostituire questa logica con qualcosa di più semplice:


#! / Bin / bash

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

eco "

Seleziona:


1. Visualizza le informazioni di sistema

2. Visualizza lo spazio su disco

3. Visualizza l'utilizzo dello spazio domestico

0. Esci "

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


caso $REPLY in

0) echo "Programma terminato." exit

;;

#! / Bin / bash

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

eco "

Seleziona:


1. Visualizza le informazioni di sistema

2. Visualizza lo spazio su disco

3. Visualizza l'utilizzo dello spazio domestico

0. Esci "

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


caso $REPLY in

0) echo "Programma terminato." exit

;;


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

;;

2) df -h

;;

3) 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

;;

*) echo "Voce non valida" >&2 exit 1

;;

che C

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

;;

2) df -h

;;

3) 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

;;

*) echo "Voce non valida" >&2 exit 1

;;

che C


. Custodie il comando esamina il valore di parola, nel nostro esempio, il valore del REPLY variabile, e quindi tenta di confrontarla con una delle variabili specificate modelliQuando viene trovata una corrispondenza, il comandi associati al pattern specificato vengono eseguiti. Dopo aver trovato una corrispondenza, non vengono tentate ulteriori corrispondenze.


 

Il miglior sistema operativo cloud computing su OnWorks: