Мне нужно получить доступ к некоторым внутренним переменным 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 при каждом изменении.

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

0