Ce que je voudrais faire est d'inclure les paramètres d'un fichier dans mon shell bash interactif actuel comme ceci:Comment un script bash peut-il connaître le répertoire dans lequel il est installé? opérateur?
$. /path/to/some/dir/.settings
Le problème est que le script .settings doit également utiliser le "." opérateur pour inclure d'autres fichiers comme celui-ci:
. .extra_settings
Comment est-ce que je référence le chemin relatif pour .extra_settings dans le fichier .settings? Ces deux fichiers sont toujours stockés dans le même répertoire, mais le chemin d'accès à ce répertoire sera différent en fonction de l'emplacement d'installation de ces fichiers.
L'opérateur connaît toujours/path/to/some/dir/comme indiqué ci-dessus. Comment le fichier .settings peut-il connaître le répertoire dans lequel il est installé? Je préférerais ne pas avoir un processus d'installation qui enregistre le nom du répertoire installé.
Parfait. $ (dirname "$ BASH_SOURCE") est ce que j'étais exactement ce que je cherchais. Pour mon but, je ne me soucie pas tellement des liens symboliques. Merci à tous ceux qui ont répondu. Vraiment de bonnes réponses ici. – Gary
Pour résoudre les liens symboliques, vous pouvez simplement faire: 'dir = $ (dirname $ (readlink -f" $ BASH_SOURCE "))' –