Вы действительно должны прочитать следующую статью BashFAQ:
Правда в том, что хаки $0
НЕ являются надежными, и они будут давать сбой, когда приложения запускаются с нулевым аргументом, который не является путем приложения. Например, login(1)
поместит -
перед именем вашего приложения в $0
, что приведет к поломке, и всякий раз, когда вы вызываете приложение, которое находится в PATH
$0
, не будет содержать путь к вашему приложению, но просто имя файла, что означает, что вы не можете извлечь из него информацию о местоположении. Есть еще много способов, которыми это может не сработать.
Итог: не надейтесь на взлом, правда в том, что вы не можете выяснить, где находится ваш скрипт, поэтому используйте опцию конфигурации, чтобы установить каталог ваших файлов конфигурации или что вам нужно путь к скрипту для.