@Linda-chan

Linda-chan

Линда Кайе
Linda-chan

Дата рождения: 01.11.1983

Тотальная неудачница и убийца жёстких дисков. Самая большая поклонница Ариэль. Член ордена Вселенского тормоза имени Осаки-сан. Любительница каваййных переднеприводных машинок. Суккуб на полставки. Когти прилагаются.

https://www.lindachan.net

10 я читаю 59 меня читают
15074 постов
25804 комментариев
Linda-chan
21 Feb 2016

Вопрос знатокам баш-скриптинга. Как получить каталог, в котором находится выполняющийся скрипт, чтобы в самом скрипте подставлять его у другим файлам, которые должны искаться в каталоге скрипта?
Например, в Windows я использую конструкцию вида «%~d0%~p0», которая берёт диск и путь к каталогу, в котором лежит выполняющийся BAT файл (его имя получается из переменной %0). В итоге на файлы я ссылаюсь так: «%~d0%~p0SomeDataFile.TXT».
А как это сделать в Баше? Как из $0 вытащить такую же информацию?

21 Feb 2016

pwd если полный путь basename pwd если само имя

21 Feb 2016

dirname $0

Комментарий был отредактирован в 12:40:56 21.02.2016
#iggeb/3
21 Feb 2016

pwd == текущий каталог, а не каталог, в котором лежит скрипт

#iggeb/4 в ответ на /1
21 Feb 2016

кстати, вместо %~d0%~p0 можно писать просто %~dp0

21 Feb 2016

Это будет текущий каталог.

#iggeb/7 в ответ на /1
21 Feb 2016

realpath даёт путь с именем файла, а вот dirname работает. Хорошо бы ещё в абсолютном формате OO

#iggeb/8 в ответ на /3
21 Feb 2016

Можно, но я люблю писать полностью, чтобы меньше путаться.

#iggeb/9 в ответ на /6
21 Feb 2016

Заюзай их вместе: $(dirname $(realpath $0))

#iggeb/11 в ответ на /8
21 Feb 2016

Так и сделала. Кстати, тут в жуйке подсказывают «readlink -e» вместо realpath.

#iggeb/12 в ответ на /11
21 Feb 2016

В смысле, устанавливать не надо.

#iggeb/13 в ответ на /11

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.