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 PYTHONPATH
n'est pas définie, car elle .bashrc
n'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 ~/.bashrc
du 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_profile
ou .profile
pour une connexion interactive et .bashrc
pour une connexion non interactive. Si votre shell de connexion est appelé bash sh
ou ash ou ksh, il génère .profile
une connexion interactive et rien pour une connexion non interactive.