Dans un script, j'obtiens $0
le chemin relatif possible vers celui-ci. Pour le convertir en absolu, j'ai trouvé cette solution que je ne comprends pas:
abspath=$(cd ${0%/*} && echo $PWD/${0##*/})
Mon problème est la magie à l'intérieur de ${0%/*}
et ${0##*/}
. Il semble que le premier extrait le nom du répertoire et le dernier extrait le nom du fichier, je ne comprends pas comment.
dirname
utilité est utile ici.
BASH_SOURCE
c'est mieux que $0
, comme le $0
donne la commande tapée par l'utilisateur, qui pourrait ne pas être le script en cours d'exécution.
readlink -f $0
pour obtenir le chemin canonique.