Я установил свои bash-скрипты в /usr/bin/app.sh
и /usr/bin/lib.sh
app.sh
включает
source "/usr/bin/lib.sh"
и lib.sh
включает
if [ "/usr/bin/app.sh" == "$0"] ...
Когда я запускаю app.sh
из оболочки, этот тест не проходит, потому что $0
на самом деле /bin/app.sh
. В файловой системе /bin
является символической ссылкой на /usr/bin
Каков наилучший способ для lib.sh
определить, включен ли он в app.sh
(в отличие от other-app.sh
) таким образом, чтобы его не обмануло окружение? Я бы подумал, что абсолютные пути без символических ссылок сделали бы эту работу, но, видимо, нет.