Задать вопрос

Как сделать путь в bash-скрипте относительным места запуска?

Есть следующая иерархия директорий:

~/AAA
~/ААА/bash
~/AAA/site

~/BBB
~/BBB/bash
~/BBB/site

--//--

~/NNN
~/NNN/bash
~/NNN/site


Внутри директории bash/ всегда лежат файлы с расширением .sh.

Чаще всего я нахожусь в директории site/.

Я хочу запускать скрипты алиасом. Сделал ~/.bash_aliases. Прописал так:
alias get1="bash ../bash/111.sh"
alias get2="bash ../bash/222.sh"
alias getN="bash ../bash/NNN.sh"


Первая проблема. Внутри каждого скрипта есть файл с переменными.
Я подключаю его так:
. ./variables.sh

Но при запуске алиаса, например get1, я получаю сообщение об ошибке: variables.sh: No such file or directory. Я конечно могу выставить абсолютный путь. Но можно ли сделать в таком случае код универсальным, чтобы в каждом отдельном файле не прописывать абсолютный путь?

Второй вопрос. А нельзя ли сделать путь внутри алиаса таким, чтобы находясь в любой поддириктории корневой директории, например в ~/BBB, или в ~/BBB/bash, алиас срабатывал верно?

То есть если я нахожусь внутри ~/BBB, не важно на какой глубине, скрипт из ~/BBB/bash/ отзывался на команду?

Далее, если бы я копировал bash/ в новую директорию ~/CCC/, скрипты бы работали автоматом.

Если можно такое организовать, куда копать? Что искать?
  • Вопрос задан
  • 27 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы