Índice del artículo

Estructuras básicas de control

De forma somera podemos decir que el uso de las estructuras básicas de control nos permite indicarle al programa que acción tomar con base en diferentes variables o condiciones que se presenten durante la ejecución del mismo.

Las principales estructuras básicas de control son:

  • if ... then ... else
  • case
  • while
  • for
  • until

 

If ... then ... else

Esta sentencia nos sirve para definir que si se cumple cierta condición ejecute un comando (o serie de comandos) y si no se cumple la condición que ejecute otro conjunto de comandos (o nada). La sintaxis más básica de esta instrucción es de la siguiente manera

if condición ; then comandos ; fi

o en diferentes líneas:

if condición
then
comandos
fi

Cuando sea una sola condición y un sólo comando es recomendable utilizar la primera sintaxis y para instrucciones de más de un comando se entiende mejor en la opción de diferentes líneas.

Otras sintaxis para la sentencia if con más opciones son:

if condición
then
comandos1
else
comandos2
fi

Con esta sintaxis, lo que logramos es revisar una condición y en caso que se cumpla ejecutará la serie de comandos1 y si no se cumple ejecutará la serie de comandos2. Si requerimos más opciones podemos utilizar:

if condición1
then
comandos1
elif condición2
then
comandos2
...
fi

En esta forma de sintaxis,como podrás ver cambia la palabra else por elif (abreviación de else if), lo cual nos permite evaluar una segunda condición si no se cumple la primera y así sucesivamente podemos evaluara tantas condiciones como queramos.

Case

Esta instrucción nos permite evaluar una variable entre sus posibles valores para ejectura comandos de acuerdo al valor de la variable. La sintaxis es de la siguiente forma:

case variable in
patron1)
comandos1;;
patron2|patron3)
comandos2;;
...
esac

Podemos utilizar también el caracter | como cláusula ó, es decir que si la variable tiene un valor o el otro realice la acción.

While

Nos permitirá crear un ciclo para la ejecución de sentencias de manera continua hasta el cumplimiento de una condición o hasta que se le indique salir del ciclo. En este tipo de sentencias tenemos que tener cuidado de no crear ciclos que no tengan salida ya que nuestra ejecución nunca terminaría de manera normal, por lo que tendríamos que acabar el proceso con una instrucción kill

La sintaxis para el ciclo while es:

while [condición]
do
comandos
done

For

El ciclo for en Unix (y Linux) es un poco diferente al normal de los ciclos for.En este caso, la estra estructura de control permite repetir un número de instrucciones para un número de seleccionado de palabras o archivos. Al igual que el anterior se requiere tener cuidado de no caer en ciclos infinitos.

La sintaxis del ciclo for es:

for palabra [in lista_de_palabras...]
do
comandos

done

Por ejemplo:

for archivo in *.c ; do wc -l $archivo ; done

En este ejmplo, se cuentan las líneas de todos los arhivos que terminan con .c y un ejemplo de la salida sería:

15 g_sol.c
59 m_sol00.c
424 m_sol01.c
377 m_sol02.c
287 m_sol03.c

También puedes utilizar la instrucción repeat (sólo en csh) que ejecuta un solo comando en repetidas ocasiones de acuerdo al parámetro conteo.

repeat conteo comando

Ejemplo:

@ veces = 500
repeat $veces echo "Debo poner atención en clase."

Cuya salida será la repetición de la frase "Debo poner atención en clase." 500 veces en la pantalla.