के लिए जटिल कारणों rsync / SCP / SFTP रन .bashrc जब एक और होस्ट से कनेक्ट करते। आपको अपने .bashrc के शीर्ष पर इनमें से कोई भी आदेश होना चाहिए :
भी
[[ $- != *i* ]] && return
या
[ -z "$PS1" ] && return
उपरोक्त आदेशों में से कोई भी केवल इंटरैक्टिव सत्र के लिए शेष .bashrc आदेशों के निष्पादन की अनुमति देगा । जहां तक मुझे पता है कि आपको किसी अन्य प्रकार के सत्र के लिए उनकी आवश्यकता नहीं है (और वास्तव में मैंने आर्क और डेबियन से डिफ़ॉल्ट बैशकेक को उनके बैशकेक में इस तकनीक का उपयोग करके देखा है)।
यदि आप अपने bashrc कमांड्स को गैर-संवादात्मक सत्रों के लिए भी चलाने के बारे में अतिरिक्त पागल होना चाहते हैं, तो आपको कम से कम अपने bashrc के आदेशों को लपेटना चाहिए जो इस तरह से आउटपुट उत्पन्न करते हैं ( संदर्भ ) ताकि वे केवल इंटरेक्टिव सत्रों में चलें:
if shopt -q login_shell; then
# this is an interactive session, we _can_ display output
...code that produces output goes here...
fi
ध्यान दें कि अन्य लोगों का सुझाव है कि आउटपुट टेक्स्ट को आपके bash_profile पर ले जाएं, लेकिन मुझे इस बारे में मेरी शंका है कि क्या यह हमेशा अच्छा है (उदाहरण के लिए समझाया गया है )