La mayoría de las respuestas le dan la ruta actual y son sensibles al contexto. Para ejecutar su secuencia de comandos desde cualquier directorio, use el siguiente fragmento.
DIR="$( cd "$( dirname "$0" )" && pwd )"
Al cambiar de directorio en una subcapa, podemos llamar a pwd
y obtenga la ruta correcta del script independientemente del contexto.
A continuación, puede utilizar $DIR
como "$DIR/path/to/file"
El directorio actual (inicial) del script de shell es el directorio desde el que ha llamado al script.
Como ya se mencionó, la ubicación será desde donde se llamó al script. Si desea que el script haga referencia a su ubicación instalada, es bastante simple. A continuación se muestra un fragmento que imprimirá el PWD y el directorio instalado:
#!/bin/bash
echo "Script executed from: ${PWD}"
BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"