GNU/Linux >> Tutoriales Linux >  >> Linux

Usando y en Bash while loop

El [] operador en bash es azúcar sintáctico para una llamada a test , que está documentado en man test . "o" se expresa mediante un infijo -o , pero necesita un "y":

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

Hay 2 formas correctas y portátiles de lograr lo que quieres.
Buen viejo shell sintaxis:

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

Y bash sintaxis (como usted especifique):

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

La forma portátil y robusta es usar un case declaración en su lugar. Si no está acostumbrado, es posible que necesite algunas miradas para entender la sintaxis.

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

Usé while true pero de hecho podrías usar el case declaración allí directamente. Sin embargo, se vuelve difícil de leer y mantener.

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

Linux
  1. Usando Bash para la automatización

  2. Explorando la API RESTful de Podman usando Python y Bash

  3. Scripts de Linux:3 procedimientos para bucles while en Bash

  4. Manteniéndote al tanto – Bash For, While, Until Ejemplos de bucles

  5. buscar y copiar archivos usando Bash

Golpear hasta bucle

Bash romper y continuar

Comando de salida de Bash y códigos de salida

Secuencias de comandos de Bash:ciclo while y till explicado con ejemplos

Bash Scripting Part2 – Bucles for y while con ejemplos

Creando clases y objetos usando bash scripting