Dans un script, j'obtiens $0le 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.
dirnameutilité est utile ici.
BASH_SOURCEc'est mieux que $0, comme le $0donne la commande tapée par l'utilisateur, qui pourrait ne pas être le script en cours d'exécution.
readlink -f $0pour obtenir le chemin canonique.