La maggior parte delle risposte ti fornisce il percorso corrente e sono sensibili al contesto. Per eseguire il tuo script da qualsiasi directory, utilizza lo snippet seguente.
DIR="$( cd "$( dirname "$0" )" && pwd )"
Cambiando directory in una subshell, possiamo quindi chiamare pwd
e ottenere il percorso corretto dello script indipendentemente dal contesto.
Puoi quindi utilizzare $DIR
come "$DIR/path/to/file"
La directory corrente (iniziale) dello script di shell è la directory da cui hai chiamato lo script.
Come già accennato, la posizione sarà da dove è stato chiamato lo script. Se desideri che lo script faccia riferimento alla sua posizione di installazione, è abbastanza semplice. Di seguito è riportato uno snippet che stamperà il PWD e la directory installata:
#!/bin/bash
echo "Script executed from: ${PWD}"
BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"