Você já tem a oportunidade de definir BASH_ENV
para o nome do caminho de um arquivo que o script de shell não interativo analisa antes de executar.
Isso permite que você faça, em um crontab, por exemplo
@hourly BASH_ENV="$HOME/.bashrc_non_interactive" "$HOME/bin/mybashscript"
ou até mesmo
BASH_ENV="$HOME/.bashrc_non_interactive"
@hourly "$HOME/bin/mybashscript"
@daily "$HOME/bin/myotherbashscript"
$BASH_ENV
geralmente está vazio, mas não há nada que o impeça de configurá-lo globalmente em seu servidor, apontando para um arquivo em /etc
que faz
if [ -f "$HOME/.bashrc_non_interactive" ]; then
. "$HOME/.bashrc_non_interactive"
fi
No entanto, se um script precisar de conjunto de variáveis específicas, como JAVA_HOME
etc., talvez seja melhor definir BASH_ENV
explicitamente em um script por script ou originar explicitamente o arquivo relevante de dentro o script em si, ou apenas definir as variáveis no script. Coletar todas as coisas que qualquer shell não interativo pode querer usar em um único arquivo pode retardar os scripts e potencialmente também poluir o ambiente dos scripts com coisas que eles não precisam.