Quando executo meu programa interativamente, ele funciona bem:
ssh somehost
$ ~/some/path/somescript.py
Quando executo meu programa diretamente no ssh, ele não funciona. A variável PYTHONPATHnão está definida, porque .bashrcnão é originada.
ssh somehost ~/some/path/somescript.py
Se eu correr ssh somehost 'source ~/.bashrc; ~/some/path/somescript.py', funciona bem.
Mas o último não funcionaria para outras pessoas, por exemplo, usando o tcsh e não tendo um ~/.bashrc).
Qual é o comando para executar uma coisa via ssh em outro host que funcione para todos os shells?
bash, ele origina .bash_profileou .profilepara um logon interativo e .bashrcpara um logon não interativo. Se o seu shell de login for chamado bash como shou ash ou ksh, ele cria .profileum logon interativo e nada para um logon não interativo.