Většina odpovědí vám poskytne aktuální cestu a je citlivá na kontext. Chcete-li spustit skript z libovolného adresáře, použijte níže uvedený fragment.
DIR="$( cd "$( dirname "$0" )" && pwd )"
Přepnutím adresářů v subshell pak můžeme volat pwd
a získat správnou cestu ke skriptu bez ohledu na kontext.
Poté můžete použít $DIR
jako "$DIR/path/to/file"
Aktuální (počáteční) adresář skriptu shellu je adresář, ze kterého jste skript zavolali.
Jak již bylo zmíněno, umístění bude tam, odkud byl skript volán. Pokud chcete, aby skript odkazoval na umístění instalace, je to docela jednoduché. Níže je úryvek, který vytiskne PWD a nainstalovaný adresář:
#!/bin/bash
echo "Script executed from: ${PWD}"
BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"