Eu estava aprendendo sobre arquivos de inicialização para bash e encontrei o seguinte link:
Explicar os arquivos de inicialização do bash
Então, na última ramificação do diagrama no link, encontrei se o bash não for login não interativo, as variáveis ​​env devem ser originadas pela variável de ambiente BASH_ENV , fiz um arquivo de teste e escrevi BASH_ENV="/home/myusername/ .bare.sh"
o conteúdo de .bare.sh é:
var="the bare environment branch should be reached"
e lançou um script que imprime var :
echo $var
mas nenhuma saÃda é gravada após o lançamento do script
eu esperava que ele imprimisse "o branch do ambiente nu deve ser alcançado"
Qual poderia ser o problema aqui?
bash
Se o shell não interativo e sem login encontrarBASH_ENV
em seu ambiente , ele originará esse arquivo. SeBASH_ENV
não for exportado, não será encontrado no ambiente desse shell.Isso significa que você precisa
export BASH_ENV
no shell de chamada ou usarao iniciar o script.
Passagem relevante do
bash
manual:Então, resumindo, não basta apenas definir
BASH_ENV
em seu shell interativo, ele também precisa estar visÃvel no ambiente do shell script.