मेरे पास एक उपयोगकर्ता है जिसने किसी भी डॉट-फाइल में $ PATH में कोई संशोधन नहीं किया है: यह सिस्टम डिफ़ॉल्ट सेटिंग है। एक लॉगिन शेल से:
$ ssh example.com
user@example.com:~$ cat /tmp/hello.hs
#!/bin/bash
echo "$SHELL"
echo "$PATH"
user@example.com:~$ /tmp/hello.hs
/bin/bash
/usr/local/bin:/usr/bin:/bin
बिल्कुल निर्दिष्ट के रूप में /etc/profile
। यह मुझे नहीं बल्कि अप्रत्याशित लगता है:
$ ssh example.com '/tmp/hello.sh'
/bin/bash
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
जैसा मैंने कहा ~/.bashrc
, न तो $ PATH का कोई संशोधन है , न ही अंदर /etc/bash.bashrc
। ~/.ssh/environment
या तो नहीं । ssh(1)
घोषणा करता है कि वातावरण चर PATH
है
Ssh को संकलित करते समय, निर्दिष्ट PATH पर सेट करें।
लेकिन StackOverflow के इस धागे और इस मेलिंग सूची लेख का सुझाव है कि मुझे किसी दिए गए कमांड के लिए $ PATH को प्रभावित करने में सक्षम होना चाहिए बस / संशोधित प्रोफाइल /, शेल स्टार्टअप फ़ाइलों में से एक, आदि।
यहाँ क्या चल रहा है?