जब मैं अपने कार्यक्रम को अंतःक्रियात्मक रूप से चलाता हूं, तो यह ठीक काम करता है:
ssh somehost
$ ~/some/path/somescript.py
जब मैं अपने प्रोग्राम को सीधे ssh पर चलाता हूं, तो यह काम नहीं करता है। चर PYTHONPATH
सेट नहीं है, क्योंकि .bashrc
खट्टा नहीं है।
ssh somehost ~/some/path/somescript.py
अगर मैं दौड़ता हूं ssh somehost 'source ~/.bashrc; ~/some/path/somescript.py'
, तो यह ठीक काम करता है।
लेकिन बाद वाले कुछ अन्य लोगों के लिए काम नहीं करेंगे, जैसे tcsh का उपयोग करना और बिल्कुल नहीं होना ~/.bashrc
)।
किसी अन्य होस्ट पर ssh के माध्यम से एक चीज़ चलाने की आज्ञा क्या है जो सभी गोले के लिए काम करती है?
bash
, तो यह स्रोत .bash_profile
या .profile
एक इंटरैक्टिव लॉगिन के लिए, और .bashrc
एक गैर-इंटरैक्टिव लॉगिन के लिए है। यदि आपका लॉगिन शेल बैश sh
या ऐश या ksh के रूप में है, तो यह .profile
एक इंटरैक्टिव लॉगिन के लिए स्रोत है और एक गैर-इंटरैक्टिव लॉगिन के लिए कुछ भी नहीं है।