Ho un'utilità composta da un paio di directory con alcuni script bash e file di supporto che verranno distribuiti su più macchine, possibilmente in una directory diversa su ogni macchina. Gli script devono poter fare riferimento ai percorsi relativi a se stessi, quindi devo essere in grado di ottenere il percorso del file attualmente in esecuzione.
Sono consapevole del dirname $0
linguaggio che funziona perfettamente quando la mia sceneggiatura viene chiamata direttamente. Sfortunatamente c'è il desiderio di essere in grado di creare collegamenti simbolici a questi script da una directory totalmente diversa e avere ancora il relativo lavoro di logica di tracciamento.
Un esempio della struttura generale del dripping è il seguente:
/
|-usr/local/lib
| |-foo
| | |-bin
| | | |-script.sh
| | |-res
| | | |-resource_file.txt
|-home/mike/bin
| |-link_to_script (symlink to /usr/local/lib/foo/bin/script.sh)
Come posso fare riferimento in modo affidabile /usr/local/lib/foo/res/resource_file.txt
dal script.sh
fatto che sia invocato da /usr/local/lib/foo/bin/script.sh
o ~mike/bin/link_to_script
?