Inicio / Programacion / Uso de los flujos de control en Linux

Uso de los flujos de control en Linux

En la lección de hoy queremos enseñaros a cómo utilizar los flujos de control en Linux, es decir, para añadirle cierta “inteligencia” a nuestros scripts. Hasta ahora, los tutoriales de programación de Shell Scripts únicamente han consistido en secuencias simples de comandos los cuales se inician desde la primera línea y continúan línea por línea sin saltarse nada hasta el final.

Sin embargo, la mayoría de los programas hacen mucho más que esto; Toman decisiones y llevan a cabo diferentes acciones en función de las condiciones establecidas.

Uso de los flujos de control en Linux

Uso de los flujos de control en Linux

Shell nos proporciona varios comandos que podemos utilizar para controlar el flujo de ejecución de nuestro programa. Hoy en este artículo hablaremos sobre if.

El comando if es bastante simple en principio; se toma una decisión basada en el estado de salida de un comando. El comando if tiene la siguiente sintaxis:

If comando; then

Comandos

[elif comando; then

Comandos…]

[Else

Comandos]

fi

Sustituye comandos por una lista de comandos que quieres que se ejecuten.

Sinceramente esto es un poco confuso a primera vista. Pero antes de que podamos aclarar esto, tenemos que ver cómo Shell evalúa el éxito o el fracaso de un comando.

Estados de salidas

Los comandos (incluyendo las secuencias de comandos y las funciones de shell que escribimos) emiten un valor al sistema cuando se terminan, a esto se le llama estado de salida.

Este valor, que es un número entero en el rango de 0 a 255, indica el éxito o el fracaso de la ejecución del comando. Por convención, un valor de cero indica que éxito u ok y cualquier otro valor indica fracaso o not.

Shell nos proporciona un parámetro que podemos usar para examinar el estado de salida. En el siguiente ejemplo se puede ver en acción:

valor del estado de salida en shell

En este ejemplo, ejecutamos el comando ls dos veces. La primera vez, el comando se ejecuta correctamente, si mostramos el valor del parámetro $? vemos que es cero.

Ahora ejecutamos el comando ls segunda vez, produciendo un error y examinamos el parámetro $? otra vez, esta vez contiene un 2, lo que indica que el comando ha detectado un error.

Algunos comandos utilizan diferentes valores de estado de salida para proporcionar diagnósticos de errores, mientras que muchos otros comandos simplemente dan un valor de uno cuando fallan. Las páginas man a menudo incluyen una sección titulada “Estado de Salida”, describiendo el significado de los valores que dan los códigos, sin embargo, un cero siempre indica éxito u ok.

Por último la Shell proporciona dos órdenes internas extremadamente simples que no hacen nada excepto terminar ya sea con un estado de salida de cero o uno. El comando true siempre se ejecuta con un éxito y false siempre con error:

uso de true y false en linux

Podemos utilizar estos comandos para ver cómo funciona la sentencia if. Lo que la sentencia if realmente hace es evaluar el éxito o el fracaso de los comandos:

analisis de la sentencia if

En el programa anterior podemos ver que if dará como echo “It’s true” siempre y cuando que la orden que haya antes de if se ejecute de forma satisfactoria es decir, de un “true” e if no hará nada si el trozo anterior del código no se ejecuta, es decir, da un “false”.

Resumiendo

Con esto ya sabemos manejar if de forma básica, en posteriores artículos os enseñaremos más sobre los flujos de control en Linux con muchos más ejemplos y enseñándoos opciones más complicadas tales como test.

Vea Tambien

como crear un script en linux

Cómo crear tu primer script en Linux

Un script de shell es un archivo que contiene texto ASCII. Para crear un script ...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *