O problema é que, ao fazer bash -c '....'
, você está gerando uma sessão não interativa (e sem login) de bash
, que não irá source
de qualquer arquivo de configuração de tempo de execução, por exemplo. ~/.bashrc
.
Como você definiu o alias
em ~/.bashrc
, é possível usar a opção -i
para que bash
possa simular o ambiente interativo e, portanto, source
o arquivo ~/.bashrc
:
bash -ic '....'
Agora, o alias
deve estar disponível.
Exemplo:
$ alias l
alias l='ls'
$ bash -c 'l'
bash: l: command not found
$ bash -ic 'l'
bar foo