लॉगिन पर निष्पादित होने वाली शेल स्क्रिप्ट कैसे लिखें?


16

मैं Ubuntu 11.10 लिनक्स डिस्ट्रो में बैश शेल स्क्रिप्ट लिखने की कोशिश कर रहा हूं, जो सिस्टम में लॉग ऑन करने पर स्वचालित रूप से निष्पादित हो जाएगा। लेकिन मुझे यह पता नहीं चल पा रहा है कि स्क्रिप्ट में ऐसा क्या लिखना है जिससे वह लॉग इन करने पर स्वतः निष्पादित हो जाए।

जवाबों:


18

यदि आप चाहते हैं कि यह वैश्विक हो, तो संशोधित करें

 /etc/profile 

या करने के लिए एक स्क्रिप्ट जोड़ें

 /etc/profile.d

यदि आप इसे उपयोगकर्ता-विशिष्ट होना चाहते हैं, तो संशोधित करें

 /home/$USER/.profile

1
यह मत भूलो कि .shयदि आप अपनी स्क्रिप्ट को अंदर रखते हैं तो एक्सटेंशन होना चाहिए /etc/profile.d/chmode +x /etc/profile.d/myscript.shबेशक।
ब्रायन हाक

रास्पियन स्ट्रेच। /usr/local/bin/pihole -cविशिष्ट उपयोगकर्ता के ऑटोलॉगिन पर कमांड चलाने की कोशिश कर रहा है । इस लाइन को जोड़ा /home/$USER/.profile- कुछ भी नहीं होता है। जब मैं स्क्रिप्ट जोड़ता हूं /etc/profile.dतो यह काम करता है, लेकिन यह वैश्विक है और इसे तब भी चलाता है जब मैं ssh सत्र खोलता हूं (जो मैं चाहता हूं वह नहीं है)। को जोड़ना .bashrcकाम करता भी है, लेकिन किसी भी समय मैं खुले नए खोल चलाता है (जो नहीं जो मैं चाहता है)। सवाल: /home/$USER/.profileकाम करने से क्यों नहीं जोड़ा जाएगा ???
ड्रू

3

बस स्टार्टअप अनुप्रयोगों के लिए बैश स्क्रिप्ट जोड़ें।

कमांड फ़ील्ड में, दर्ज करें

bash /full/path/to/bash/script.sh/

2
आप कमांड लाइन से स्टार्टअप अनुप्रयोगों में "बैश /.../script.sh" कैसे जोड़ते हैं?
अलेब

1
ओपी ने कभी जीयूआई का उल्लेख नहीं किया; क्या होगा अगर वे SSH के माध्यम से एक दूरस्थ सर्वर पर हैं और एक GUI नहीं है ? किसी भी डेस्कटॉप टैग को प्रश्न पर लागू नहीं किया गया था ...
Doktor J

शीर्षक विशेष रूप से लॉगिन पर और डेस्कटॉप GUI के बारे में कुछ भी उल्लेख नहीं करता है।
रिचीएचएच

0

यदि आप अधिक विशिष्ट होना चाहते हैं तो आप ~ / .bash_profile या ~ / .bash_login में भी कोड लिख सकते हैं।

और आप उदाहरण के लिए किसी भी स्क्रिप्ट को स्रोत कर सकते हैं:

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

0

/etc/profileया $HOME/.profileया$HOME/.bash_profile

/etc/profile.d/yourscript.shअगर यह आउटपुट का उपयोग करता है, तो मैं अत्यधिक उपयोग करने की सलाह दूंगा। जब आप एक गैर-संवादात्मक सत्र का उपयोग करते हैं, तो आपको एक $TERM is not setसंदेश प्राप्त होगा । यह ssh प्रोटोकॉल का उपयोग करते समय ध्यान देने योग्य है, जैसे scp। आमतौर पर, एक बड़ी बात नहीं है, हालांकि, वीम को यह पसंद नहीं है और यह एक चेतावनी फेंक देगा। मुझे पता है कि वीम यहां का विषय नहीं है, लेकिन यह ध्यान देने योग्य है कि सभी एप्लिकेशन शालीनतापूर्वक $TERM is not setचेतावनी को अनदेखा नहीं करेंगे ।

संक्षेप में, यदि स्क्रिप्ट आउटपुट उत्पन्न करती है, तो इसे पहली पंक्ति में निर्दिष्ट स्थानों पर रखें। हालांकि, यदि आप पर्यावरण को संशोधित कर रहे हैं और आपकी स्क्रिप्ट आउटपुट उत्पन्न नहीं करती है, तो बाद का उपयोग करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.