Domanda

Ok, quindi ho provato a cercarlo su Google e non riesco a trovare una risposta. Quello che sto cercando di fare è creare un'istruzione Case in Bash, ma se l'utente inserisce un numero diverso rispetto a quello elencato, esce solo dalla sceneggiatura. Come faccio a fare un errore e quindi chiedere all'utente di selezionare una delle opzioni?

Ad esempio, la mia dichiarazione del caso

case $ans in
1) echo "Running Project 1..."
   sleep 2
   ./project1.sh
;;
2) echo "Running Project 2..."
   sleep 2
   ./project2.sh
;;
Qq) echo "Exiting"
    exit
;;
esac

Quindi qualsiasi opzione diversa da 1, 2, QQ darà un errore che dice una selezione non valida, riprova.

È stato utile?

Soluzione

Hai bisogno di un ciclo di tempo e una variabile booleana come quella:

flag = true
while [  $flag ]; do
    case $ans in
        1) echo "Running Project 1..."
           sleep 2
           ./project1.sh
        ;;
        2) echo "Running Project 2..."
           sleep 2
           ./project2.sh
        ;;
        Qq) echo "Exiting"
            flag = false
        ;;
    esac
done
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top