লিনাক্স এর sh (বাশ নয়) কমান্ড প্রম্পটে বর্তমান পাথটি কীভাবে প্রদর্শিত হবে?


43

আমি sh প্রম্পটে বর্তমান পাথ প্রদর্শন করতে চাই (বাশ শেল নয়), যা বর্তমানে কেবল "#" দেখায়, আমি এটি প্রবর্তনের চেষ্টা করেছি

env PS1="$(whoami)@$(hostname):$(pwd)"

এবং

set PS1="$(whoami)@$(hostname):$(pwd)"

মধ্যে /etc/profile

ডিরেক্টরিটি পরিবর্তন করা হয় বা ব্যবহারকারী পরিবর্তিত হয় তবে এটি সতেজ হয় না। এই গতিশীল করতে দয়া করে একটি উপায় প্রস্তাব করুন।


1
লক্ষ্য করুন যে প্রত্যেকে $()পৃথক প্রোগ্রাম চালায়; এটা যেমন পরিবেশের, ব্যবহার করা দ্রুত হবে $LOGNAME, $HOSTNAMEএবং $PWDপরিবর্তে।
মাধ্যাকর্ষণ

একটি উত্তর ছিল ডাবল উদ্ধৃতিগুলির পরিবর্তে একক উদ্ধৃতি ব্যবহার করা, তবে এটি বেশ সম্পূর্ণ সঠিক উত্তর। আপনি প্রকৃতপক্ষে যা করতে চান তা হ'ল প্রম্পটটি ব্যবহার না হওয়া অবধি আপনার প্রম্পটের অভ্যন্তরের কোডটির মূল্যায়ন স্থগিত করা।
মাআসএসএইচএল

আপনাকে কেবল রফতানি "PS1 =" $ (হোয়ামি) @ $ (হোস্টনাম): $ (pwd)> "এর পরে সম্পাদনা / ইত্যাদি / প্রোফাইলটি ব্যবহার করতে হবে এবং শেষে এই লাইনটি সংযোজন করতে হবে।
এসডসোলার

উত্তর:


76

ডাবল উদ্ধৃতিতে কমান্ড বিকল্পগুলি "অবিলম্বে প্রসারিত হবে। এটি আপনার প্রম্পটের জন্য যা চান তা নয়। একক উদ্ধৃতি 'বিকল্পগুলি সংরক্ষণ করবে $PS1যাতে প্রম্পটটি প্রদর্শন করার পরে কেবল প্রসারিত হবে। সুতরাং এটি কাজ করা উচিত:

export PS1='$(whoami)@$(hostname):$(pwd)'

আপনার প্রম্পটের শেষে যদি আপনি সাধারণ ডলারের চিহ্ন এবং একটি স্থান চান তবে কেবল $শেষে যুক্ত করুন (কোনও প্রকারের দরকার নেই):export PS1='$(whoami)@$(hostname):$(pwd)$ '


1
আপনার উত্তরে 'সেট' থেকে 'রফতানি' পরিবর্তন করার পরে মনোমুগ্ধের মতো কাজ export PS1='$(whoami)@$(hostname):$(pwd)$'করেছি আমি পরিবর্তনটি এতে সংরক্ষণ করেছি /etc/profile। ধন্যবাদ.
ব্লিমার

@ ব্লিমার: setআমার পক্ষে কাজ করেছেন (তবে আমার কোনও নেটিভ ছিল না sh)। তবে আমি exportআপনার সেটআপ মেনে চলতে এটি পরিবর্তন করব ।
এমপি

2
এটি স্থায়ী করার কোনও উপায় আছে কি? বর্তমানে প্রতিটি সময় আমি লগইন করে আমাকে এটি করতে হয় Thanks ধন্যবাদ!
the.ufon

3
আপনি এই লাইনটি রেখেছেন /etc/profile(প্রশ্ন দেখুন) বা ~/.profile?!
এমপিপি

+1, যদিও এর শেষে কিছু ডিলিমিটারের প্রয়োজন হবে। যেমনটি, আপনি foo@localhost:/home/fools -laব্যবহার করার মতো কিছু পান ls -la
ফ্রেস্নেল

12
sh-4.2$ export PS1="\u@\h:\w>"
jenny@serenity:~>cd /usr/local
jenny@serenity:/usr/local>

1
আমি আশঙ্কা করি যে বাশ শেলের জন্য কাজ করে না sh, যখন আমি এটি করি তখন আমি \u@\h:\w>আমার কমান্ড প্রম্পট হিসাবে পাই
ব্লিমার

1
অবশ্যই একটি আলাদা শ সংস্করণ হতে হবে; যেমন আপনি প্রথম লাইন থেকে দেখতে পাচ্ছেন, এটি আমার পক্ষে sh 4.2 তে কাজ করেছে worked
জেনি ডি

1
যে ক্ষেত্রে হতে পারে। এই শেলটি ব্যস্ত বক্স থেকে। ধন্যবাদ. আপনার সাহায্যের প্রশংসা করুন যদিও।
ব্লিমার

@ ব্লিমার, এটি আমার পক্ষে কাজ করে BusyBox v1.19.4 built-in shell (ash)
সিজেএম

জবাবের জন্য আপনাকে ধন্যবাদ সিজেএম, যদিও আমি এটি আরও খনন এড়াতে চাই।
ব্লিমার

5

এই আদেশটি আমার পক্ষে কাজ করে।

export PS1="\u@\h: \W:$"

যেখানে
\ u = ব্যবহারকারীর নাম
\ h = হোস্টনেম
\ বর্তমান ফোল্ডারের নাম (পুরো পথ নয়)


+1 \ ডাব্লু প্যারামিটারের জন্য
দিমিত্রি কে

3

কেউ কেউ কিছু রঙ যুক্ত করে প্রম্পটটিকে ফুটিয়ে তুলতে পারে। এই ক্ষেত্রে:

export PS1='\[\e[0;36m\]\u\[\e[0m\]@\[\e[0;33m\]\h\[\e[0m\]:\[\e[0;35m\]\w\[\e[0m\]\$ '

1
এই আমি খুঁজছিলাম ছিল। আমি আশা করি সবাই জীবনে কিছু রঙ পছন্দ করে :)
গোবিন্দ কৈলাস

কমপক্ষে আমি করি। ;)
আরভিদ

1

একটি উত্তর ছিল ডাবল উদ্ধৃতিগুলির পরিবর্তে একক উদ্ধৃতি ব্যবহার করা, তবে এটি সম্পূর্ণ সঠিক উত্তর নয়। আপনি প্রকৃতপক্ষে যা করতে চান তা হ'ল প্রম্পটটি ব্যবহার না হওয়া অবধি আপনার প্রম্পটের অভ্যন্তরের কোডটির মূল্যায়ন স্থগিত করা।

set PS1="$(pwd)" 

সেট কমান্ড হিসাবে ওয়ার্কিং ডিরেক্টরিতে প্রম্পট সেট করে।

set PS1="\$(pwd)" 

প্রসারিত হয় না p (pwd)। পরিবর্তে, PS1 $ (pwd) এর আক্ষরিক মানতে সেট করা আছে।

পরীক্ষা করে / চালিয়ে এটি বুঝতে:

echo $PS1

। আপনি যদি স্ট্রিংটি দেখেন: pwd, আপনার প্রম্পটটি কাজ করে। আপনি যদি আক্ষরিক পথটি দেখেন, প্রম্পটটি নষ্ট হয়ে গেছে কারণ এটি স্থিতিশীলভাবে সেট করা আছে


1

সেট করতে নীচের কমান্ডটি ব্যবহার করুন সিপানেলের মতো।

PS1='$(Woami)@${HOSTNAME%%.* export [$ (pwd)] # 'রফতানি করুন


ধন্যবাদ! উপরের অন্যান্য বিকল্পগুলির মধ্যে কোনওটিই কাজ করে না। এই এক করেছে। আমাকে পাগল করছে। আমার বিচক্ষণতা বাঁচানোর জন্য ধন্যবাদ। হা!
Lee_Str
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.