viernes, 10 de marzo de 2017

Operadores de control: otra forma de ramificar

bash ofrece dos operadores de control que pueden realizar ramificaciones. Los operadores && (AND) y || (OR) funcionan como los operadores lógicos del comando compuesto [[ ]]. Esta es la sintaxis:

comando1 && comando2

y

comando1 || comando2

Es importante entender su comportamiento. Con el operador &&, se ejecuta comando1, y comando2 se ejecuta si, y sólo si, comando1 es exitoso. Con el operador ||, se ejecuta comando1, y comando2 se ejecuta si, y sólo si, comando1 no es exitoso.

En términos prácticos, esto significa que podemos hacer algo así:

[me@linuxbox ~]$ mkdir temp && cd temp

Esto creará un directorio llamado temp, y si tiene éxito, el directorio de trabajo actual se cambiará a temp. El segundo comando sólo se intenta ejecutar si el comando mkdir tiene éxito. Igualmente, un comando como este:

[me@linuxbox ~]$ [ -d temp ] || mkdir temp

comprobaremos si existe el directorio temp, y sólo si falla el test, se creará el directorio. Este tipo de construcción es muy útil para tratar errores en scripts, un asunto que se tratará más tarde en capítulos posteriores. Por ejemplo, podríamos hacer esto en un script:

[ -d temp ] || exit 1

Si el script requiere el directorio temp, y no existe, entonces el script terminará con un estado de salida de uno.

No hay comentarios:

Publicar un comentario