Cargando

Ir a contenido


 


Script bach utiles para Linux

En bash también es bueno separar las cosas, por ejemplo las funciones comunes a todos los programas, se pueden tener en un juego único de librerías, para después ser utilizada por otros programas.

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.


Escrito por el feb 20 2014 21:42 bach linux linux


En bash también es bueno separar las cosas, por ejemplo las funciones comunes a todos los programas, se pueden tener en un juego único de librerías, para después ser utilizada por otros programas.
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.
¿Te ha gustado y ayudado este Tutorial?
Puedes premiar al autor pulsando este botón para darle un punto positivo
  • -
  • 0
10
VOTA
5
100%
4
0%
3
0%
2
0%
1
0%

  Información

  •   Publicado feb 20 2014 21:42
  •   Actualizado feb 21 2014 19:09
  •   Visitas 2.3K



Tutoriales Relacionados


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!
Demuestra que eres experto!
  ESCRIBIR TUTORIAL
Suscribirse