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.

El primer test, quiza el más básico, es el señor if-then.

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 test la condicion es verificada, y si se cumple entonces 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 parentesis que la comparacion de una variable siempre debe de llevar $ (no es mismo comparar si A = 1 que $A = 1).
  • El usar mas de dos tests juntos, es decir, querer usar 3 o mas tests 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 acausar 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 test IF, siempre termina con FI. Si olvidamos esto el script fallará. El FI va al final de cada test o subtest.
Herramientas personales
Crear un libro