Quando -c é especificado, bash não está sendo executado como interativo ou um login shell para que ele não leia os mesmos scripts de inicialização. Qualquer coisa definida em /etc/profile , ~/.bash_profile , ~/.bash_login ou ~/.profile seria definitivamente ignorada.
Além disso, conforme explicado na página bash man:
Bash attempts to determine when it is being run with its standard input connected to a network connection, as when executed by the remote shell daemon, usually
rshd, or the secure shell daemonsshd. If bash determines it is being run in this fashion, it reads and executes commands from~/.bashrcand~/.bashrc, if these files exist and are readable.
Então, se você não acha que está se conectando através da rede, talvez não leia o arquivo .bashrc , o que pula tudo que não foi ignorado na etapa anterior.
solução
Para contornar esse problema, eu criaria um script que definisse o PATH como algo adequado e depois executasse o comando. Se você quiser usar os arquivos .profile ou outros arquivos existentes, poderá fazer a sua fonte seu roteiro.