Parte 2
Aprende Bash Scripting Rápido 2
Creando una lista de libros leídos
En este punto debemos de tener dos archivos dentro del directorio /Users/<usuario>/scripts
libros.txt y miScript.sh.
libros.txt
contiene la lista a la que se agregarán los libros cada vez que ejecutemos el script o que redireccionemos un hilo de texto (standard output).
miScript.sh
es el script con todas las instructiones, y aunque lo repasaremos en el video que sigue, aquí puedes ver el contenido del script miScript.sh:
# lo que está después del hashtag es ignorado por la consola
#!/bin/bash
# Pedir el título y autor del libro al usuario
echo "Título del libro: "
echo "Autor de " $titulo":"
read autor
# Redirreccionar el output como input a libros.txt
echo ${titulo} "-" ${autor} >> libros.txt
# Informar al usuario con una confirmación
echo $titulo " de "$autor " ha sido agregado a libros.txt"
# Esperar 3 segundos para que se lea el mensaje
sleep 3
# enviar correo electrónico al usuario indicado
mail -s "#Asunto: Libros" Mariano < 'libros.txt'
# limpiar la pantalla
clear
# Mensaje de confirmación de que el crreo fue enviado exitosamente
echo "Listo, la lista de libros ha sido enviada a tu correo."
Con el script anterior, crearemos el programa que introdujimos en la primera parte:
Recuerda que para hacerlo ejecutable, debes usar sudo chmod 777 miScript.sh
, de lo contrario, no ocurrirá nada cuando lo corras.
Para ejecutarlo existen dos formas, ambas bastante sencillas: ./miScript.sh
que es el atajo para el igualmente válido comando bash miScript.sh
. Cualquiera de las dos opciones ejecutará cualquier bash script.
Puedes agregar tantos como quieras, ya sea usando redireccionamiento, como lo hicimos en la primera parte (>>), o bien, corriendo el script (que contiene la instrucción del redireccionamiento también).
Cada vez que corramos el script recibiremos por correo una versión actualizada de la lista. Puedes verificar que los títulos están siendo ingresados correctamente usando cat libros.txt
:
Para una explicación guiada y más detallada de lo que significa cada parte del script te dejo un vídeo corto: