El Manual de BASH Scripting Básico para Principiantes/El básico (If-Then)
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 conFI
. Si olvidamos esto el script fallará. - Colocar el
FI
va al final de cada comprobador.