La programaci�n del shell es una de las herramientas mas apreciadas por todos los administradores y muchos usuarios de Linux/Unix ya que permite automatizar tareas complejas, comandos repetitivos y ejecutarlas con un solo llamado al script 3.1 o hacerlo autom�ticamente a horas escogidas sin intervenci�n de personas.
La programaci�n shell en Unix/Linux es, en cierto sentido, equivalente a crear archivos .BAT en DOS. La diferencia es que en Unix/Linux es mucho mas potente. Estos scripts pueden usar un sinn�mero de herramientas como:
El lenguaje de programaci�n de cada shell provee de una amplia gama de estructuras de control como se muestra en la tabla 3.7.
for name [ in word; ] do list ; done
select name [ in word ; ] do list ; done
case word in [ pattern [ | pattern ]\ldots ) list ;; ]\ldots esac
if list then list [ elif list then list ]\ldots [ else list ] fi
$while list do list done
$until list do list done
[ function ] name () { list; }
Un sencillo ejemplo es realizar un backup de solo ciertos directorios (prog_dir1 y prog_dir2), luego comprimirlos usando bzip2 y enviarlos a un area de almacenamiento (digamos una unidad ZIP previamente montada en /mnt/zipdrive), y adem�s con que el nombre del archivo contenga la fecha del d�a. Suena dif�cil? Realmente no lo es.
Se crea un archivo texto con cualquier nombre, por ejemplo mibackup que contenga las instrucciones que se desea ejecutar.
#!/bin/sh # echo "---------- Captura fecha -----------" fecha=`date +%Y%m%d` # echo "---------- Haciendo Tar -----------" tar cvf backup$fecha.tar prog_dir1 prog_dir2 # echo "----------- Comprimiendo -----------" bzip2 backup$fecha.tar # echo "---------- Envi�ndolos a zip -------" cp ./backup$fecha.tar /mnt/zipdrive # echo "----------- Limpiando --------------" rm -f ./backup$fecha.tar # echo "----------- Final -------------"
Luego, se le asigna permisos de ejecuci�n con el comando
chmod +x mibackupy esta listo para ser ejecutado.
En el script aqu� mostrado es importante resaltar varios principios importantes: la primera l�nea determina el shell que se esta usando (sh o bash); las variables no se declaran solo se asignan; su valor es retornado usando el s�mbolo $.
Si desea mas informaci�n acerca de programaci�n en shell se puede consultar los manuales en l�nea del shell: bash o tcsh3.3.