GNU/Linux >> Znalost Linux >  >> Linux

Pomocí a ve smyčce Bash while

[] operátor v bash je syntaktický cukr pro volání test , což je zdokumentováno v man test . "nebo" je vyjádřeno infixem -o , ale potřebujete "a":

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

Existují 2 správné a přenosné způsoby, jak dosáhnout toho, co chcete.
Stará dobrá shell syntaxe:

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

A bash syntaxe (jak zadáte):

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

Přenosným a robustním způsobem je použití case místo toho prohlášení. Pokud na to nejste zvyklí, může to trvat několik pohledů, abyste si omotali hlavu kolem syntaxe.

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

Použil jsem while true ale ve skutečnosti byste mohli použít case prohlášení tam přímo. Čtení a udržování je však chlupaté.

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

Linux
  1. Jak napsat smyčku v Bash

  2. Bash pro průvodce smyčkou a příklady

  3. Použití Bash pro automatizaci

  1. Prozkoumání Podman RESTful API pomocí Pythonu a Bash

  2. Skriptování v Linuxu:3 postupy pro smyčky while v Bash

  3. Tip pro profesionály:Smyčky For, While a Until

  1. Bash Beginner Series #8:Loops in Bash

  2. Příklady Bash for Loop a While Loop

  3. Udržujeme vás ve smyčce – příklady opakování pro, Zatímco, dokud