1

В /usr/local/bin у меня есть файл 'ln -s' для /usr/local/foo/bash.script, и в этом последнем скрипте я хочу узнать текущий каталог /usr/local/foo, чтобы я мог запустить вторичный скрипт из этой папки.

Теперь я попробовал dirname $ 0, но вместо этого я получаю папку /usr/local/bin . Что я должен использовать в bash.script для получения папки /usr/local/foo ?

1 ответ1

5

попробуйте readlink , например

d=$0

while readlink $d >/dev/null; do
  d=`readlink $d`
done
echo $d

РЕДАКТИРОВАТЬ:

Я не уверен, что это работает на других ОС Unix, но если вы работаете в Linux, то выше можно упростить с помощью

d=`readlink -f $0`

echo $d

увидеть

readlink --help

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .