বাশ প্রম্পটে আমি কীভাবে পরম পথ প্রদর্শন করতে পারি?


50

আমি বর্তমানে আমার বাশটি PS1এরকম কিছুতে সেট করেছি :

PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\w\n\$ "

আমি কীভাবে এটিকে আপেক্ষিকের /home/dave/dirপরিবর্তে (উদাহরণস্বরূপ ~/dir) পরিবর্তের পরম পথটি দেখাতে পারি ?


1
/home/dave/dirএবং ~/dirউভয়ই পরম পাথ, দ্বিতীয়টি আপনার হোম ডিরেক্টরিতে সংক্ষিপ্তসার ব্যবহার করে। আপেক্ষিক পাথ হ'ল একটি পাথ যা আপনার বর্তমান ডিরেক্টরিতে (যেমন ) মূল ( ) থেকে শুরু করার পরিবর্তে আপেক্ষিক../dir/
ডগ হ্যারিস

3
পিএস আগের কমান্ডের প্রস্থান স্থিতি নির্দেশ করতে রঙের দুর্দান্ত ব্যবহার। সম্ভবত আমি পছন্দ করেছি এমন কোনও প্রম্পটে রঙের প্রথম ব্যবহার।
ডগ হ্যারিস

@ ডগ হ্যারিস: সংশোধন করার জন্য ধন্যবাদ। আমিও এই রঙ পছন্দ করি। মনে রাখবেন না আমি কোথায় এটি প্রথম দেখেছি (সম্ভবত পূর্ববর্তী কোনও এসইউ পোস্টে?)
ডেভিড বি

\u@\H[\w]:~\$তোলেuser@host[~/path]:~$
জেরেম

উত্তর:


49

শুধু প্রতিস্থাপন \wসঙ্গে \$PWD:

PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\$PWD\n\$ "

যাইহোক আপনি যদি কিছুটা টিপস মনে করেন তবে আমি এমন কিছু লিখব:

PS1='\[`[ $? = 0 ] && X=2 || X=1; tput setaf $X`\]\h\[`tput sgr0`\]:$PWD\n\$ '

4
আমি এটিও ভেবেছিলাম, তবে প্রতিটি কলের ক্ষেত্রে নয়, $PWDবরাদ্দকরণের সময় মূল্যায়ন করা হয় PS1তবে , আপনি যদি ডলারের চিহ্ন থেকে বাঁচেন, এটি কাজ করবে - \$PWD। এটির সাহায্যে ডলার চিহ্ন হ'ল নিয়োগের সময় ডলারের চিহ্ন এবং প্রতিটি প্রম্পটে ভেরিয়েবল মূল্যায়ন ঘটে। আপনাকে +1
ডগ হ্যারিস

ডান, মিস করেছি।, যদি সম্ভব হয় তবে আমি সাধারণত একক উদ্ধৃতি দিয়ে কাজ করি। ধন্যবাদ।
cYus

+1 ধন্যবাদ! আপনি দয়া করে আপনার সুন্দর বাশ লাইনে যাদুটি ব্যাখ্যা করতে পারেন ('টিপ' টি)?
ডেভিড বি

অবশ্যই। পাঠযোগ্যতা এবং বহনযোগ্যতা (?) এর জন্য সরাসরি নিয়ন্ত্রণের অক্ষরগুলি লেখার পরিবর্তে রং পরিবর্তন করার জন্য আমি টিপুট (আরও তথ্যের জন্য ম্যান টিপুট দেখুন) ব্যবহার করেছি। এছাড়াও আমি একক উদ্ধৃতি ব্যবহার করে ডাবল উদ্ধৃতি এবং পিছনে স্ল্যাশ সরিয়েছি। অবশেষে একটি ভেরিয়েবল ব্যবহার করে আমি কিছু বাড়াবাড়ি এড়ানো করেছি।
সিউরাস


0

বাশের পিএস 1 এ; -W আপেক্ষিক হতে হবে, এবং -আম নিরঙ্কুশ, সুতরাং উপরের মধ্যে আপনার ইতিমধ্যে পরম থাকা উচিত ?!

http://wiki.archlinux.org/index.php/Color_Bash_Prompt


3
আমি মনে করি আপনি নিরঙ্কুশ বিভ্রান্ত করছেন | সম্পূর্ণ সাথে সম্পর্কিত | কারেন্ট_ডির relative Wকেবলমাত্র বর্তমান ডিরেক্টরি নাম wদেখায়, সম্পূর্ণ পথ দেখায়, তবে এখনও আপেক্ষিক পাথ ব্যবহার করে।
ডেভিড বি

ইউআরএলটির পরিভাষা ছিল আমার নয় :)
সাইরেক্স

0

হুম ~ / দির একটি পরম পাথ তবে একটি "শর্টকাট" ব্যবহার করছে। উদাহরণস্বরূপ, আপনি যদি cd /usr/localপ্রম্পটটি করেন তবে সম্ভবত সম্ভবত / usr / স্থানীয় সম্পূর্ণ পথ প্রদর্শন করবে। যাইহোক, আপনার ইতিমধ্যে একটি পুরো পথ রয়েছে :-)

তবে সম্ভবত আপনার সঠিক প্রশ্নটি ~ এর মতো কোনও শর্টকাট ছাড়াই পুরো পথটি কীভাবে প্রদর্শন করবেন?

তবে আমি তার একটি উত্তর জানি না এবং লোকটির দিকে চেয়ে দেখছি, এটির একটি (অন্তত নথিভুক্ত) আছে বলে মনে হয়।


0

pwdব্যবহার না করে চালান \W

সাধারণ সংস্করণ:

export PS1="\`pwd\` $ "

আপনার কোড এ এটি ব্যবহার:

export PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\`pwd\`\n\$ "

1
গৌণ বিন্দু: প্রতি গুগলের বাশ স্টাইল গাইড, ব্যাকটিক্সের ক্ষেত্রে $ (পিডব্লিউডি) পছন্দ করুন কারণ নেস্টিংয়ের সময় ব্যাকটিকগুলি পলায়নের প্রয়োজন হয় এবং $ () না করে।
ফ্যানরল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.