script/bach linux

Un script es un archivo de ordenes o pequeño programa con el que poder automatizar ciertas tareas o acciones en un ordenador. Intentaré explicarlo de forma más sencilla.
Un script suele ser un archivo de texto plano, en el que se insertan las ordenes que se quieren realizar. En Ubuntu (o cualquier distribución Linux) podríamos hacer un script con comandos de consola para poder, por ejemplo, actualizar el sistema, instalar alguna aplicación, hacer un backup de archivos, o todo a la vez.
El contenido de un script que nos hiciese un backup de nuestras carpetas importantes y lo guardase en un pendrive podría ser del siguiente modo:
#!/bin/bash
cd /media/pendrive
tar -cvzf documentos.tar.gz /home/usuario/Documentos/*
tar -cvzf videos.tar.gz /home/usuario/Videos/*
tar -cvzf imagenes.tar.gz /home/usuario/Imagenes/*
tar -cvzf descargas.tar.gz /home/usuario/Descargas/*
# Este script despliega la fecha, hora, nombre de
# usuario y directorio actual
echo -n "Fecha y hora:
" date echo echo "Tu terminal es: `w`"
echo -n "Tu directorio actual es: " pwd
Guión shell que copia todos los archivos de trabajo con extensión .dat y .c del directorio actual al directorio pasado como argumento. Si este directorio no existe, el guión lo debe crear.
#!/bin/bash test ! -e "$1" && mkdir "$1"
if [ -d "$1" ]
then
cp *.dat *.c "$1" 2> ficherr
fi
Implementar un shell script que verifique cada 30 segundos si existe en el directorio actual un fichero prueba.txt. Para probar este guión es necesario ejecutarlo en segundo plano.
#!/bin/bash until test -e prueba.txt
do sleep 30 done
echo
Ya apareció el archivo prueba.txt
Crear un shell script que liste todos los directorios y subdirectorios recursivamente de uno dado. El directorio será introducido como argumento y el guión lo primero que hará será verificar si es precisamente un directorio. #!/bin/bash if [ ! $# -eq 1 ]
# Comprobar número de parámetros introducidos
then
echo "¡¡ Error !! Uso: "$0" nom_dir" break fi if [ -d "$1" ]
then ls -lR "$1" | grep '^d'
else
echo "No existe el directorio $1"
fi