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.
La primera comprobación que veremos es el señor 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
FIva al final de cada comprobador.