যদি আপনার এসএসডি দরকারী ভেরিয়েবলগুলি সরবরাহ না করে তবে আপনি ব্যবহার করতে পারেন
ps -p $PPID
বা $PPID
শেলটির প্যারেন্ট প্রসেসটি আপনার রিমোট-লগইন-প্রক্রিয়া কিনা তা দেখার জন্য বা অন্য কোনও র্যান্ডম পিএস ট্রিক (যদি আপনার শেলটি সেট না করে )। তারপরে যদি পিতামাতাই হ'ল দূরবর্তী-জিনিসটি স্যুইচ করুন $ PS1। এবং তারপরে ওপেনএসএইচ ডাউনলোড করুন এবং গীকোসর / কালেবের পরামর্শগুলি ব্যবহার করুন কারণ আপনার এসএসএস সার্ভারটি জঞ্জাল। ;)
অথবা, আপনি "কে আমি" আউটপুট ব্যবহার করতে পারেন, সর্বশেষ ক্ষেত্রটি (অর্থাত্ $( who am i | awk '$0=$NF')
) দখল করতে পারেন এবং হোস্টটি কোনও স্থানীয় বা দূরবর্তী অবস্থান থেকে লগ ইন করেছেন কিনা তা নির্ধারণ করার জন্য কোনও দূরবর্তী বা স্থানীয় কিনা তা পরীক্ষা করে দেখতে পারেন।
অথবা $(hostname)
আপনার শেলটি নির্দিষ্ট হোস্টগুলিতে উপযুক্ত $ PS1 ব্যবহার করার জন্য আপনি আউটপুটটি স্যুইচ করতে পারেন ।
অথবা, আসুন বাদাম যাই। যদি আপনি একটি আধুনিক শেল ব্যবহার করেন - যেমন ব্যাশ, ksh93, বা zsh, আপনি এই বাস্তবতার সাথে সুবিধা নিতে পারেন যে $ PS1 কার্যকর হওয়ার পরে পুনরায় মূল্যায়ন করা হয়েছে। সুতরাং, যদি আপনার সিডব্লিউডি সংগ্রহস্থলের মধ্যে থাকে এবং বাইরে অন্য কোনও কিছু থাকে তবে আপনি পাগল গিট স্টাফ করার জন্য একটি ইনলাইন শর্তযুক্ত ব্লক অন্তর্ভুক্ত করতে পারেন। উদাহরণস্বরূপ, আমি [[ conditional ]] && $( echo "whatever it should be if true) || $( echo "whatever should be the if-not-true prompt" )
মূলতঃ আমি যে ডিরেক্টরিটি ব্যবহার করছি তার উপর নির্ভর করে আমার প্রম্পট পরিবর্তন করছি ।
default prompt$ PS1='$(id -un) @ $(hostname)$( [[ $(pwd) = /tmp ]] && echo " [I am in /tmp]" || echo " /not/in/tmp")$ '
myname @ host /not/in/tmp$ cd /tmp
myname @ host [I am in /tmp]$ cd /etc
myname @ host /not/in/tmp$
অবশ্যই, profile PS1 সংজ্ঞাটি আপনার প্রোফাইলে পাগল দেখাবে, তবে আপনি কেবল তখনই সুপার-রঙিন-গিট-স্টাফ পাবেন যখন আপনি অন্যদিকে অন্যদিকে নিয়মিত রঙ ছড়িয়ে রাখবেন while :) নোট করুন যে আপনাকে PS1 এসাইনমেন্টের চারপাশে একক উদ্ধৃতি ব্যবহার করতে হবে। পিএস 1 নির্ধারিত হওয়ার পরে আপনি ভেরিয়েবলগুলি প্রসারিত করতে চান না; যখন PS1 পরে মূল্যায়ন করা হয় আপনি সেগুলি প্রসারিত করতে চান। সুতরাং, একক উদ্ধৃতি।