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.

