En este ejemplo, armaremos un archivo de librerías donde pondremos nuestras funciones y otro que use este archivo. Lo que hay que recordar es utilizar los path absolutos.
Vamos a crear nuestro archivo de librerias para ello nuestro archivo de librerías que estará ubicado en un lugar estratégico para su uso, en/usr/local/bin nuestro archivo se llamara libreriaBash.sh
Lo abrirmos o creamos con un editor de textos como Gedit o si eres un experto con un simple editor de comandos como nano o vi. Dentro podremos el siguiente codigo
#!/bin/bash # archivo de Librerias # Aquí puedes declarar variables si lo deseas. #Mostrar fecha y hora del sistema function ahora { local tiempoAhora local ret tiempoAhora=$( date +"%d/%m/%Y %H:%M:%S.%s") ret=$? echo $tiempoAhora } #Apagar el ordenador en x tiempo function apagar { echo "Tiempo de apagado (min): " read time sudo shutdown -h $time } #Desintalar una aplicación, se pasa por parametro y requiere usuario root function desintalar { sudo apt-get remove $aplicacion } #si esta instalado scrot podremos hacer capturas de pantalla function capturas { scrot -e 'mv $f ~/Imagenes/scrot/`date +%d-%m-%y_%H:%M:%S`_captura.png' }
Declaramos las variables locales a la función, sino realizamos esto las variables que coincidan en el nombre, se verán afectadas por la función y viceversa.
Una vez que tenemos nuestro archivo de librerías hecho y sin olvidarse de que tiene que tener atributos de ejecución, crearemos nuestro programa que utilizara dicha librería.
Ahora veamos el contenido de nuestro archivo prueba2.sh
#!/bin/bash # archivo prueba2.sh #incluimos las librerias ./usr/local/bin/libreriaBash.sh mitiempo=$(ahora) echo "ejemplo de salida de función de librería: $mitiempo" echo "ejemplo dos de salida de función de librería: $(ahora)"
Observamos también que las funciones pueden ser usadas sin ser pasadas a una variable.
Tener en cuenta que hay muy poca diferencia entre llamar a un bash para incluirlo en nuestro programa a ejecutar un bash dentro de otro bash.
#!/bin/bash # archivo prueba2.sh #incluimos las librerias /usr/local/bin/libreriaBash.sh
Lo que estamos diciendo es que ejecute el archivo
ahora podemos ejecutar el archivo ./prueba2.sh
Asi podremos crear otros archjivos de script e ir añadiendo funcionalidades a la librerias anteriormente creada como por ejemplo podemos invocar la funciona para capturar pantallas que ya tenemos en la librerias desde un nuevo script imagenes.sh
#!/bin/bash # archivo .sh #incluimos las librerias ./usr/local/bin/libreriaBash.sh capturas
Las opciones son muchas ya que abarca otro ejemplo de un script bash es una descargado multiple pero pasando como parametro un archivo de texto
#!/bin/bash ##llama a wget y descarga lo que le indiquemos con la velocidad que digamos ## y en la carpeta que queramos clear echo "Puedes ingresar un archivo de texto" echo "con las direcciones asi: '-i archivo.txt'" sleep 2 echo -n "Ingresa la direccion a Descargar: " read descarga sleep 1 echo "El Destino debe ser una carpeta existente en tu PC" echo -n "Ingresa la Carpeta de Destino: " read destino sleep 1 echo "La Velocidad es en kb o mb Ej: 50k 1m" echo "o ingresa 0 (cero) para ilimitado" echo -n "Ingresa la Velocidad de Descarga: " read velocidad sleep 1 wget -c --limit-rate=$velocidad -P$destino $descarga fichero=`basename $descarga` hora=$(date +%H:%M:%S) echo "Finalizada la descarga de $fichero en $destino a las $hora" ]sleep 3
La ventaja es que podemos tener multiples librerias para trabajar con archivos, directorios, servidores, instalar o desinstalar programas, monitorizar los recursos o realizar tareas repetitivas sin tener que ingresar todo el codigo nuevamente.