Lorsque j'exécute mon programme de manière interactive, cela fonctionne bien:
ssh somehost
$ ~/some/path/somescript.py
Lorsque j'exécute mon programme directement sur ssh, cela ne fonctionne pas. La variable PYTHONPATHn'est pas définie, car elle .bashrcn'est pas d'origine.
ssh somehost ~/some/path/somescript.py
Si je cours ssh somehost 'source ~/.bashrc; ~/some/path/somescript.py', ça marche bien.
Mais ce dernier ne fonctionnerait pas pour d'autres personnes, par exemple en utilisant tcsh sans en avoir ~/.bashrcdu tout).
Quelle est la commande pour exécuter une chose via ssh sur un autre hôte qui fonctionne pour tous les shells?
bash, il source .bash_profileou .profilepour une connexion interactive et .bashrcpour une connexion non interactive. Si votre shell de connexion est appelé bash shou ash ou ksh, il génère .profileune connexion interactive et rien pour une connexion non interactive.