LINUX.ORG.RU

Сообщения rgrgewt

 

cd `dirname $0`; echo «$PWD»

Форум — General

Ищу как-то в гуле ответ на один вопрос. Нахожу по второй же ссылке:

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, где ни одна гуишка по-человечески работать не умеет, а если и умеет немного, то либо глючит, либо течет, либо вылетает, либо проект уже заброшен и заростает плесенью.

rgrgewt
()

RSS подписка на новые темы