Seu arquivo ~/.bashrc
detecta se está sendo originado por um shell interativo ou não interativo:
case $- in
*i*) ;;
*) return ;;
esac
Quando esse arquivo é originado de um script (que é um shell não interativo), a ramificação return
é obtida e o arquivo não é executado no final.
Adicionar export
declarações ao final do arquivo significaria que elas não seriam executadas quando originadas de um script.
A solução pode ser escrever as declarações de export
em um arquivo separado e fonte do seu script (e possivelmente também de ~/.bashrc
se você achar necessário).