Cargando



Programando script con bash en linux

Si bien lo usamos generalmente para operaciones administrativas o de gestión de archivos, la consola de Linux extiende su funcionalidad mucho más allá de ese propósito, permitiéndonos programar scripts acorde a nuestras necesidades.


feb 20 2014 22:00
feb 20 2014 22:01

terminal-if-then-else-bash-ciclo.jpg


Si bien lo usamos generalmente para operaciones administrativas o de gestión de archivos, la consola de Linux extiende su funcionalidad mucho más allá de ese propósito, permitiéndonos programar scripts acorde a nuestras necesidades.

Básicamente decimos que es un archivo que contiene código escrito en determinado lenguaje de programación que el sistema usa para determinada tarea. No es necesario que tenga una entrada externa ni interfaz gráfica, pero sí que provoque una salida de datos procesados.

Para empezar debemos contar con un editor de texto y ganas de programar. Los archivos que guardamos con extensión .sh podrán ser ejecutados (o interpretados) por la consola, siempre y cuando la primera línea sea la siguiente:

#!/bin/bash
Esto le dice al sistema que deberá usar la consola para ejecutar el archivo. Además, el carácter # permite escribir comentarios.

Vamos a probar varios ejemplos
Creamos un archivo denominadp descargas.sh
#!/bin/bash
#creamos un alias llamado descargas con la dirección del directorio Descargas
alias descargas=’/home/usuario/Descargas’

Guárdalo como descargas.sh
Para lanzar el script’ Bash, dále permisos de ejecución. Para ello escribe enlaterminal de comandos:
chmod u+x descargas.sh
Recuerda ejecutar este comando para cada script que crees
Lanza el ‘script’ ejecutando en la terminal
./descargas.sh
Si funciono deberas quedar posicionado en el directorio Descargas
Utilizar variables y parametros en el script
#!/bin/bash
# Utilizando de variables
#
echo "Tu primer argumento es" $1
echo "Tu segundo argumento es" $2

La forma de ejecutar el script sera por ejemplo
./miScript.sh hola 4

El resultado debera ser
Tu primer argumento es hola
Tu segundo argumento es 4


Como hacer que durante la ejecucion se pueda ingresar variables y parametros
#!/bin/bash
echo “Ingresá tu nombre y presioná ENTER”
#Leemos la variable nombre
read nombre
echo “Tu nombre es $nombre”

Un ejemplo mas útil de un script que nos dira que procesos ejecuta un determinado usuario que se ingresa

#!/bin/bash
RES=s #respuesta al bucle continuar si
while [ $RES = s ]
do
echo "Introducir nombre de usuario:"
read USU #nombre de usuario
ps aux|grep $USU
echo "¿Desea continuar?"
read RES
done

Si queremos impedir que cualquier usuario pueda ejecutar el script al principio podemos poner el siguiente codigo para que solo pueda ser ejecutado por el usuario root

#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Este script debe ser ejecutado por el usuario root" 1>&2
exit 1
fi
Si cualquier otro usuario intenta ejecutar el script, este no funcionara y la ventana de terminal se cerrara.

Tambien podemos permitir a algunos usuarios ejecutalo para ellos al principio pondremos el siguiente codigo
#!/bin/bash
AUTHORIZED_USER="usuariopermitido"
if [ $USER != $AUTHORIZED_USER ]; then
echo "Este script debe ser ejecutado por el usuario $AUTHORIZED_USER" 1>&2
exit 1
fi

Crearemos un menu bash para dar distintas opciones ya sea a un usuario o para facilitar la interaccion

#!/bin/bash
clear
while :
do
echo " Escoja una opcion "
echo "1. Usuario conectados?"
echo "2. Consumo de recursos"
echo "3. Servicios funcionando?"
echo "4. Salir"
echo -n "Seleccione una opcion [1 - 4]"
read opcion
case $opcion in
1) echo "Estan conectados:";
who;;
2) echo "Ejecutando htop";
htop;;
3) lsof -n -i -P | grep '*;;
4) echo "Fin";
exit 1;;
*) echo "$opc es una opcion invalida?";
echo "Presiona una tecla para continuar...";
read foo;;
done

¿Te ayudó este Tutorial?


1 Comentarios


Alejandro Teba
feb 21 2014 15:39
Genial Tutorial, me vino muy bien, acabo de ponerte 5 estrellas ;)

a ver si me animo y subo yo algún otro tuto.
No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

Hola! Si no encuentras algún tutorial en el buscador de Solvetic, Solicítalo Aquí

X