El Manual de BASH Scripting Básico para Principiantes/El básico (If-Then)

De Wikilibros, la colección de libros de texto de contenido libre.
← Condicionales y ciclos El básico (If-Then) El clon (Case-Esac) →
El Manual de BASH Scripting Básico para Principiantes


La primera comprobación que veremos es if-then, quizá el más básico.

EN BASH, se usa así:

#!/bin/bash
#Test IF

echo ' Adivina el valor numerico de la variable'
read A

if [ $A = 1 ];
then
echo 'Acertaste'
exit 0
fi

echo 'No acertaste'
exit

Como podemos notar, en este tipo de comprobación la condición es verificada y si se cumple las ordenes se ejecutan, y sino simplemente las salta.

Ahora bien, si necesitamos más complejidad usamos lo siguiente:

#!/bin/bash
#Test IF-ELSE

echo ' Adivina el valor numerico de la variable'
read A

if [ $A = 1 ];
then
echo 'Has acertado'
exit 0
else
echo 'Error, te has equivocado'
exit
fi

Y si queremos ponerle mas jugo al asunto:

#!/bin/bash
#Test IF-ELSE

echo ' Adivina el valor numerico de la variable'
read A

if [ $A = 1 ];
then
echo 'Has acertado'
exit 0
else
if [ $A = 2 ];
then
echo 'Estuviste cerca'
fi
fi

exit

Notas sobre la sintaxis:

  • No olvidemos indicar en el test entre los paréntesis que la comparación de una variable siempre debe de llevar $ (no es mismo comparar si A = 1 que $A = 1).
  • El usar mas de dos comprobadores juntos, es decir, querer usar 3 o mas comprobadores en el mismo terminará por fallar, ejemplo:
#!/bin/bash
#Test IF-ELSE

echo ' Adivina el valor numerico de la variable'
read A

if [ $A = 1 ];
then
echo 'Has acertado'
exit 0
else
if [ $A = 2 ];
then
echo 'Estuviste cerca'
fi
else
echo 'Erraste'
fi

exit

Notemos que la parte en negritas va a causar conflictos a la hora de ejecutar:

Bash $ line 16: error de sintaxis cerca de token no esperado `else'
Bash $ line 16: `else'

Para que esto funcione en su lugar usaremos la siguiente sintaxis:

#!/bin/bash
#Test IF-ELSE

echo ' Adivina el valor numerico de la variable'
read A

if [ $A = 1 ];
then
echo 'Has acertado'
exit 0
elif [ $A = 2 ];
then
echo 'Estuviste cerca'
else
echo 'Erraste'
fi

exit 0
  • El comprobador IF, siempre termina con FI. Si olvidamos esto el script fallará.
  • Colocar el FI va al final de cada comprobador.