compile
não invoca .bashrc
porque a compilação usa um shell interativo e bash
invoca .bashrc
quando invocado como um interativo shell não-login .
Felizmente, bash
tem um mecanismo para inicializar shells não interativos através da variável de ambiente BASH_ENV
:
When Bash is started non-interactively, to run a shell script, for example, it looks for the variable
BASH_ENV
in the environment, expands its value if it appears there, and uses the expanded value as the name of a file to read and execute. Bash behaves as if the following command were executed:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
but the value of the
PATH
variable is not used to search for the file name.
Portanto, se você definir a variável de ambiente BASH_ENV
como $HOME/.bashrc
, ela deverá invocar seu .bashrc
no sub-shell compile
.
Configurar variáveis de ambiente para aplicativos do OS X Mavericks parece ser uma aventura em si. Eu finalmente recorri a colocá-lo no meu arquivo .emacs
, por exemplo:
(setenv "BASH_ENV" "$HOME/.bashrc")