GNU/Linux >> Linux Esercitazione >  >> Linux

Usando e in Bash mentre il ciclo

Il [] operatore in bash è lo zucchero sintattico per una chiamata a test , che è documentato in man test . "o" è espresso da un infisso -o , ma hai bisogno di un "e":

while [ $guess != 5 -a $guess != 10 ]; do

Esistono 2 modi corretti e portatili per ottenere ciò che desideri.
Il buon vecchio shell sintassi:

while [ "$guess" != 5 ] && [ "$guess" != 10 ]; do

E bash sintassi (come specificato):

while [[ "$guess" != 5 && "$guess" != 10 ]]; do

Il modo portatile e robusto è usare un case dichiarazione invece. Se non ci sei abituato, potrebbero essere necessari alcuni sguardi solo per capire la sintassi.

while true; do
    case $guess in 5 | 10) break ;; esac
    echo Your answer is $guess. This is incorrect. Please try again.
    echo -n "What is your guess? "
    read guess  # not $guess
done

Ho usato while true ma in effetti potresti usare case dichiarazione lì direttamente. Tuttavia, diventa peloso da leggere e mantenere.

while case $guess in 5 | 10) false;; *) true;; esac; do ...

Linux
  1. Come scrivere un ciclo in Bash

  2. Bash For Loop Guida ed esempi

  3. Utilizzo di Bash per l'automazione

  4. Suggerimento per professionisti:per, mentre e fino a loop

  5. Bash Beginner Series #8:Loop in Bash

Bash fino a Loop

Bash pausa e continua

Comando di uscita Bash e codici di uscita

Bash Scripting - Mentre e fino a ciclo spiegato con esempi

Bash Scripting Part2 – Cicli For e While con esempi

Creazione di classi e oggetti utilizzando lo scripting bash