En esta clase se asumen conocimientos de programación, para aquellos que no los tengan explicaré brevemente el código.
El objetivo del script es hacer un backup de una base de datos, para ello primero se debe verificar que estén instalados ciertos paquetes en el sistema operativo (es lo que se ve en esta clase). Antes de continuar es importante saber la definición de funciones en programación.
Una vez sabiendo esto, empezamos el análisis del código:
El profesor empezó con el comando
set -e
simplemente para detener la ejecución del script por si hay alguna falla.
Después declaró dos variables de solo lectura. Estas son como variables globales, es decir, pueden llamarse aún estando dentro de funciones.
Después ejecuta dos funciones (run y make_backup), estas dos funciones son declaradas más abajo (en realidad en esta clase solo se ve la función run).
La función run ejecuta otra función (assert_is_insatalled), la cual recibe como parámetro los nombres de paquetes que la función assert_is_insatalled se va a encargar de preguntar si están instalados.
La función assert_is_insatalled inicia con la declaración de una variable (name), la cual lee el primer argumento ($1) que recibe la función assert_is_insatalled (que es el nombre del paquete a averiguar si está instalado). Para saber si está instalado el paquete solo hace un condicional cuya condición es si el comando
command -v "paquete"
da respuesta, si no da respuesta el comando, significa que no está instalado y ejecuta la función log_error con argumento “The binario …” y después de eso marca un error con el comando
exit 1
Ver para entender el exit.
La función log_error define otra variable que lee el argumento recibido y llama a otra función (log) con dos argumentos.
La función log lee los dos argumentos recibidos y crea otra variable con la fecha de ese momento, para después hacer una salida echo especificando que es un error (>&2). Errores1 Errores2
En clonclusión se crearon las funciones run y assert_is_installed para saber si ciertos paquetes que se usarán están insatalados, y las funciones log_error y log para el manejo de errores.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.