Eu preciso acessar algumas variáveis internas do bash (BASH_LINENO, BASH_SOURCE) de um comando chamado por um script de shell. A única interface possível entre o meu comando e o script são variáveis de ambiente. Existe alguma maneira de configurar o bash para tornar globais algumas variáveis internas:
Exemplo:
myscript.sh
#!/bin/bash
# ... some scripting stuff ...
mycommand # LINENO=4, BASH_SOURCE=([0]="myscript.sh")
# ... some other scripting stuff ...
Então, o que preciso é que, quando o bash invocar meu comando; $ LINENO e $ BASH_SOURCE (variáveis internas) se tornam globais, para que meu comando possa acessá-los.
Eu não estou procurando por comandos como:
declare -x LINENO
Como LINENO
muda com o tempo, se eu fizer isso declare -x LINENO
, a nova variável global LINENO
obterá o valor de LINENO
(interno) neste momento. Eu preciso que essa coisa seja dinâmica, então o LINENO
global reflete o valor de LINENO
em cada alteração.
Em palavras de programação: eu quero mudar o escopo dessas variáveis de interno para global ou fazer algo como um ponteiro.
Tags bash shell bash-scripting