Quello che mi piacerebbe fare è includere le impostazioni da un file nella mia attuale shell interattiva bash come questa:Come può uno script di bash conoscere la directory in cui è installato al momento dell'acquisto. operatore?
$. /path/to/some/dir/.settings
Il problema è che anche lo script .settings deve utilizzare "." operatore per includere altri file come questo:
. .extra_settings
Come riferimento il percorso relativo per .extra_settings nel file .settings? Questi due file sono sempre memorizzati nella stessa directory, ma il percorso di questa directory sarà diverso a seconda di dove sono stati installati questi file.
L'operatore conosce sempre/path/to/some/dir/come mostrato sopra. Come può il file .settings conoscere la directory in cui è installato? Preferirei non avere un processo di installazione che registra il nome della directory installata.
Perfetto. $ (dirname "$ BASH_SOURCE") è quello che ero esattamente quello che stavo cercando. Per il mio scopo, non mi interessa molto dei collegamenti simbolici. Grazie a tutti coloro che hanno risposto. Davvero buone risposte qui. – Gary
Per risolvere i collegamenti simbolici è sufficiente fare: 'dir = $ (nome_destinazione $ (readlink -f" $ BASH_SOURCE "))' –