|
CONTROL DEL FLUJO DEL PROGRAMA
Ahora es cuando vamos a empezar a ser capaces de programar algo en
shell. Las estructuras de control de flujo del programa que tenemos disponibles cuando
programamos en shell son el if, case, while, for y until. Además, veremos algunas
órdenes especiales y algunas construcciones un poco más raras, que sirven también para
controlar el curso de los acontecimientos.
Estructura if
La estructura if tiene una sintaxis algo inusual, porque necesita la
palabra then, pero en la línea siguiente a donde está el if y la condición. Es un if
bastante versátil, ya que permite cláusulas elif (else if) y else. La palabra para
indicar el fin de la estructura if es la palabra fi (if al revés).
La cláusula elif, por si no lo sabes, es parecida al else, aunque
necesita una condición después. Para comprender mejor el funcionamiento, veamos la
siguiente equivalencia:
if [ condicion ] if [ condicion ]
then then
... ...
else elif [ condicion2 ]
if [ condicion2 ] then
then ...
... fi
fi
fi
Algunas personas, para hacer la sintaxis más clara, o al menos más
parecida a otros lenguajes, como Pascal, escriben el if de la siguiente forma:
if [ condicion ]; then
fi
Para decidir qué ejecutar, la estructura if permite, además de una
condición, el nombre de un programa. Lo que se hará entonces es ejecutar el programa con
los parámetros dados, y dar como verdadero (y ejecutar lo que haya entre el if y el fi o
el elif o el else) que el programa devuelva un cero.
En estos casos es muy útil la instrucción nula (:), ya que si lo que
queremos es ejecutar un código si el programa va mal, entonces la única forma de hacerlo
es la siguiente:
if orden
then:
# No hacemos nada
else
codigo...
fi
|