Ищу как-то в гуле ответ на один вопрос. Нахожу по второй же ссылке:
Bash: узнать полный путь до запущенного скрипта Привет!
Есть задача присорсить все скрипты в текущей директории, беру скрипт:
#!/bin/sh for i in ./*-env.sh ; do if [ -r «$i» ]; then . $i fi done
Все работает до тех пор, пока не запустишь его из другой директории. Тогда "." соответственно показывает не туда (как и `pwd`) и файлики не находятся.
Как узнать полный путь к запущенному скрипту? В /etc/profile используют абсолютный путь, мне такое не подходит... Сенькс. anonymous (*) (07.12.2006 13:31:16)
И ответ:
d=`dirname «$0»` fullpath=`cd «$d»; pwd`/`basename «$0»`
Казалось бы все отлично, но тут ниже читаю:
Re: Bash: узнать полный путь до запущенного скрипта Не надо так делать. По меньшей мере по двум техническим причинам:
1) узнать путь к файлу — сплошь шаманство (см. архивы fido7.ru.unix.prog);
2) скрипт вообще не из файла может вызываться.
И в целом, это какой-то windows way. fk0 (*) (10.12.2006 4:41:41)
Уважаемый, фикей-нуль, вот скажите: 1) Вас спашивали о каких-то шаманах? В вопросе просто звучало слово «как» 2) Где Вы увидели, что человеку нужно будет вызывать скрипт не из файла? Если подобный функционал требуется, естественно, что он из файла только и будет запускаться. А прописывать полный путь или гадить в сиситемные каталоги своими скриптами - красивее что ли? windows-way вам не угодил? Насмотрелся я на ваш linux-way, где ни одна гуишка по-человечески работать не умеет, а если и умеет немного, то либо глючит, либо течет, либо вылетает, либо проект уже заброшен и заростает плесенью.