In uno script ottengo $0il possibile percorso relativo ad esso. Per convertirlo in assoluto ho trovato questa soluzione che non capisco:
abspath=$(cd ${0%/*} && echo $PWD/${0##*/})
Il mio problema è la magia dentro ${0%/*}e ${0##*/}. Sembra che il primo estrae il dirname e il secondo estrae il nome del file, non capisco come.
dirnameutilità è utile qui.
BASH_SOURCEè meglio di $0, dato che $0dà il comando digitato dall'utente, che potrebbe non essere lo script attualmente in esecuzione.
readlink -f $0per ottenere il percorso canonico.