Cómo determinar la ruta de ejecución de un script en BASH

domingo, enero 10, 2010

Este fin de semana estuve buscando la manera de hacer un script en BASH que funcione como lanzador para el Turpial y necesitaba saber la ruta de ejecución del propio script.

Por un momento no supe como hacerlo, pero La Gran Totuma me iluminó y recordé los parámetros básicos de cualquier script... fue entonces cuando llegó a mi mente el famoso $0.

$0 contiene la ruta completa del script en ejecución. Ese parámetro junto con otro programita nos permitirán hacer la magia.

La aplicación dirname recibe una ruta y devuelve la misma ruta pero sin el último componente (RTFM para más información).

Lo que hacemos es pasarle $0 a dirname y luego concatenamos el nombre de cualquier otro programa/script y voilá! Tendremos nuestro lanzador automático. Quedaría algo así:

#!/usr/bin/bash

CWD=$(dirname $0)
sh $CWD/otro_programa.sh