LINUX.ORG.RU

bash. имя скрипта «изнутри»


0

1

название бредовое получилось.. но ничего умнее в голову не лезет ночью.

итак. есть основной скрипт, подгружает другой скрипт при помощи '. ./script_name.sh'

нужно внутри script_name.sh получить свое имя. стандартный способ использования $0 не подходит, ибо в данном случае возвращает имя основного скрипта.

вопрос в том, как подгружаемый скрипт может узнать свое имя?

благодарен.

★★★

не инклудь его а просто запускай создаёшь проблемы на ровном месте

anonymous
()
Ответ на: комментарий от genesis_error

нет. второй скрипт задает настройки для первого. а для этого скрипт нужно инклудить.

niXman ★★★
() автор топика

ЭЭ, помойму врядле можно, т.к. оно исполняется в контексте одного скрипта. . или source внутрянняя команда баша.

visual ★★★
()
Ответ на: комментарий от visual

она у меня есть. я как раз и пытаюсь от нее избавиться, ибо по архитектурным и идейным соображениям, имя в этой переменной всегда обязано соответствовать имени самого скрипта.

но я могу из основного скрипта использовать переменную... но это решение мне как-то не нравится.

niXman ★★★
() автор топика
Ответ на: комментарий от genesis_error

я так и делаю. но к сабжу это не относится.

суть проблемы в том, что в подргужаемом скрипте есть контекстные для него команды, которым необходимо знать имя скрипта. по этому у меня и была переменная в которую я вписывал имя скрипта. от нее и хочу избавиться.

тут нашел решение: http://stackoverflow.com/questions/192319/in-the-bash-script-how-do-i-know-th...

niXman ★★★
() автор топика
Ответ на: комментарий от visual

собственно решение: echo `basename $BASH_SOURCE`

на bash-3.1.17 работает. следовательно, переживать о непереносимости не придется.

niXman ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.