Мне нужно получить доступ к некоторым внутренним переменным bash (BASH_LINENO, BASH_SOURCE) из команды, вызываемой сценарием оболочки. Единственный возможный интерфейс между моей командой и скриптом - это переменные окружения. Есть ли способ настроить bash для того, чтобы сделать глобальными некоторые внутренние переменные:
Пример:
myscript.sh
#!/bin/bash
# ... some scripting stuff ...
mycommand # LINENO=4, BASH_SOURCE=([0]="myscript.sh")
# ... some other scripting stuff ...
Поэтому мне нужно, чтобы bash вызывал mycommand; $ LINENO и $ BASH_SOURCE (внутренние переменные) становятся глобальными, чтобы моя команда имела к ним доступ.
Я не ищу такие команды, как:
declare -x LINENO
Поскольку LINENO
меняется со временем, если я сделаю это, declare -x LINENO
новая глобальная переменная LINENO
примет значение LINENO
(внутреннее) в данный момент времени. Мне нужно, чтобы эта вещь была динамичной, чтобы глобальное LINENO
отражало значение LINENO
при каждом изменении.
В словах программирования: я хочу изменить область действия этих переменных с внутренней на глобальную или сделать что-то вроде указателя.