লগইনে কার্যকর হওয়া শেল স্ক্রিপ্ট কীভাবে লিখবেন?


16

আমি উবুন্টু ১১.১০ লিনাক্স ডিস্ট্রোতে বাশ শেল স্ক্রিপ্টটি লেখার চেষ্টা করছি, যা সিস্টেমে লগ ইন করার পরে স্বয়ংক্রিয়ভাবে কার্যকর হবে। তবে আমি স্ক্রিপ্টে কী লিখতে হবে তা লগ ইন করার সময় স্বয়ংক্রিয়ভাবে কার্যকর হবে তা আমি বুঝতে সক্ষম নই।

উত্তর:


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
আপনি কীভাবে কমান্ড লাইন থেকে স্টার্টআপ অ্যাপ্লিকেশনগুলিতে "bash /.../script.sh" যুক্ত করবেন?
আলেব

1
ওপি কখনও জিইউআইয়ের কথা উল্লেখ করেনি; তারা যদি এসএসএইচ হয়ে কোনও রিমোট সার্ভারে থাকে এবং জিইউআই না থাকে ? কোনও ডেস্কটপ ট্যাগ এই প্রশ্নের জন্য প্রয়োগ করা হয়নি ...
ডক্টর জ

শিরোনামটিতে বিশেষত লগইন এবং ডেস্কটপ জিইউআইএস সম্পর্কে কিছুই উল্লেখ করা হয়নি।
রিচিএইচএইচ

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বার্তা পাবেন । এসএসপি প্রোটোকল যেমন স্কিপি ব্যবহার করার সময় এটি লক্ষণীয়। সাধারণত কোনও বড় বিষয় নয়, তবে ভীম এটি পছন্দ করে না এবং একটি সতর্কতা ফেলে দেবে। আমি জানি বীম এখানে বিষয় নয়, তবে এটি উল্লেখ করার মতো যে সমস্ত অ্যাপ্লিকেশন দয়া করে $TERM is not setসতর্কবাণীটিকে উপেক্ষা করবে না ।

সংক্ষেপে, যদি স্ক্রিপ্টটি আউটপুট উত্পন্ন করে, এটিকে প্রথম লাইনে নির্দিষ্ট করা অবস্থানে রাখুন। তবে, আপনি যদি পরিবেশটি পরিবর্তন করছেন এবং আপনার স্ক্রিপ্ট আউটপুট উত্পন্ন করে না, তবে পরবর্তীটি ব্যবহার করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.