Scripts Avanzados: Un script que parsea un fichero de opciones

Una de scripts. Irá haciendo entradas sobre scripts, unas introductorias y otras más avanzadas. Hoy vamos a ver cómo hacer que nuestros scripts puedan configurar sus variables desde ficheros externos.

Ésto es especialmente útil cuando actualizamos nuestros scripts en distintas máquinas y no queremos alterar la configuración de cada uno.

Una práctica (extendida, pero no adecuada) Era hacer algo así:

copy.sh

#!/bin/bash
ruta_origen=/home/juanjo
ruta_destino=/mnt

function copiar{
cp -vr $ruta_origen $ruta_destino
}

Con lo que si cambiamos el script de ordenador, puede que /home/junajo no exista. Vamos a hacerlo bien. Crearos un fichero de propiedades, por ejemplo

copy.sh.properties

Y dentro colocad:
# Fichero de Propiedades de copy.sh
# propiedad=valor
origen=/home/juanjo
destino=/mnt

Ahora, en el fichero copy.sh añadid la funcion propiedad:

#!/bin/bash

function propiedad {
if test -r $0.properties
then
cat $0.properties | grep -v "#" |grep -i "$1" | cut -d "=" -f 2
else
echo "ERROR: Fichero de Propiedades no encontrado o no legible"
echo "Se sale del script."
exit 0
fi
}

ruta_origen=$(propiedad origen)
ruta_destino=$(propiedad destino)

function copiar{
cp -vr $ruta_origen $ruta_destino
}


De ésta forma, podemos cambiar los scripts conservando las configuraciones de cada equipo. Dejo para otro post (de scripts básicos) la explicación de cada línea.

A cuidarse!

No hay comentarios: