পাওয়ারশেল প্রম্পটটি কীভাবে রঙিন করবেন?


17

আমি সর্বদা আমার লিনাক্সে এই রঙিন হওয়ার জন্য আমার প্রম্পটটি তৈরি করি তারপরে আমি ব্ল্যাক কমান্ড উইন্ডোতে আমার ইনপুটটি খুঁজে পেতে পারি। তবে আমরা কি আমার পাওয়ারশেলগুলিতে একই রঙ তৈরি করতে পারি ?



@DmitryKudriavtsev দেখুন এই , হয়তো এটা সিম গান ইংরেজিতে।
ইয়োডে


@ দিমিত্রিকিডিয়াভটসেভ হ্যাঁ, দুঃখিত আমি একটি ভুল করেছি।
ইয়োডে

আপনার দোষ নয়, প্রতিবর্ণীকরণ কঠিন
দিমিত্রি কুদ্রিয়াভসেভ

উত্তর:


29

রঙিন প্রম্পটের স্ক্রিনশট

পাওয়ারশেল অনুরোধ করে

আপনি যা করতে চান তা হ'ল প্রম্পটটি কাস্টমাইজ করুন ।

পাওয়ারশেল 3.0 এ ডিফল্ট প্রম্পট এবং নতুনটি হ'ল:

function prompt  
{  
    "PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) "  
}

রঙ পালানোর ক্রম

এখন, উইন্ডোজ 10 তার কনহস্টে এএনএসআই এস্কেপ কোডগুলি সমর্থন করে এবং 1703 সাল থেকে 24-বিট রঙ সমর্থিত।

এএনএসআই এর একটিতে থাকা কোড ব্যবহার করতে, আমাদের একটি আক্ষরিক ESC অক্ষর প্রয়োজন । এটি অষ্টাল 033 বা দশমিক 27 Bash বাশ-এ আপনি ব্যবহার করবেন "\033"বা "\e"; পাওয়ারশেলে কোনও সরাসরি সমতুল্য ক্রম নেই তবে আপনি পরিবর্তে একটি অভিব্যক্তি এম্বেড করতে পারেন:"$([char]27)"


পাওয়ারশেলে ব্যবহার করুন

এর অর্থ আপনি উদাহরণস্বরূপ, কোডটির সাথে সায়ানটিতে পটভূমির রঙ সেট করতে নীচের অবকাশ সিকোয়েন্সটি ব্যবহার করতে পারেন 46:

"$([char]27)[46m"

যা এর মতো ব্যবহার করা যেতে পারে:

echo "$([char]27)[46mColoured text"

জিনিসগুলিকে আরও পঠনযোগ্য করে তুলতে, আসুন একটি পরিবর্তনশীল সংজ্ঞায়িত করি:

$ESC = [char]27

সুতরাং আমরা ব্যবহার করতে পারি:

"$ESC[46m"

$ESCআক্ষরিক ESC অক্ষরটি কোথায় , [প্যারাম তালিকার শুরু এবং mশেষের সংজ্ঞা দেয়।

এটি একটি কমান্ড ব্যবহার করে:

echo "$ESC[46mColoured text"

এবং আসল রঙ সেটিংস পুনরুদ্ধার করতে, আমরা 0পরিবর্তে কোডটি ব্যবহার করি:

echo "$ESC[46mColoured text$ESC[0mUncoloured text"

আরও উন্নত রঙ

আপনি যদি বেসিক 16-রঙের প্যালেটটিতে সন্তুষ্ট না হন তবে আপনি ফর্মের সাথে পুরো 24-বিট রঙগুলি ব্যবহার করতে পারেন:

"$ESC[48;2;<r>;<g>;<b>m"

<r>0-255 থেকে লাল রঙের দশমিক মান যেখানে <g>সবুজ এবং <b>নীল রঙের জন্য, যেমন eg"$ESC[48;2;255;0;123m"

পড়ুন দয়া করে ডকুমেন্টেশন দেখুন।

বস্তুত, এই ছাড়া আপনি ব্যবহার করতে হবে সব সরাসরি আপনাকে ব্যাশ মধ্যে কী করবেন সমতূল্য, $ESCপরিবর্তে (পরে এটিকে সংজ্ঞায়িত করেছি) \eবা \033


একটি রঙিন প্রম্পট সেট করা হচ্ছে

এগুলি একসাথে রেখে, আমরা ব্যাকগ্রাউন্ডের রঙ পরিবর্তন করতে একটি সংশোধিত প্রম্পটে এএনএসআই রঙের পালানোর কোডগুলি ব্যবহার করতে পারি:

function prompt  
{  
    $ESC = [char]27
    "$ESC[46mPS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) $ESC[0m"  
}

অধ্যবসায়

আপনি যদি এটি অধিবেশন জুড়েই থাকতে চান তবে এটি আপনার প্রোফাইলে যুক্ত করুন (লাইক করুন .bashrc)। আপনি নিজের প্রোফাইলে যাওয়ার পথটি দেখতে পাচ্ছেন $profile


হাই ~, এটি একটি দুর্দান্ত উত্তর..আর আরও কি, আমরা কি পাঠ্যটি সাহসী স্টাইল তৈরি করতে পারি ? তারপরে আমরা এটি আরও সহজ খুঁজে পেতে পারি ..
yode

@ ইয়য়েড আপনি গা bold় 1/ উজ্জ্বল বিকল্প সক্ষম করতে কোড যুক্ত করতে পারেন , যেমন $ESC[46;1m। যাইহোক, দেখে মনে হচ্ছে কনহোস্ট বর্তমানে একটি আসল সাহসী টাইপফেস সমর্থন করে না - এটি কেবল একটি উজ্জ্বল অগ্রভাগের রঙ ব্যবহার করে। আপনি 4যদি পছন্দ করেন তবে আপনি একটি আন্ডারলাইন যুক্ত করতে পারেন।
বব

1
@ ইয়য়েড এটি কমবেশি সমস্ত নথি এখানে রইল , যা আমি উত্তরে লিঙ্ক করেছি;)
বব

1
@ ইয়াদ আহ। যদি আপনি 37 টি উজ্জ্বল সাদা সাথে তুলনা করেন তবে দেখে মনে হচ্ছে পাওয়ারশেল উইন্ডোজ ইতিমধ্যে ডিফল্টভাবে 97 উজ্জ্বল সাদা ব্যবহার করেছে। ( বিটিডব্লিউ, পরবর্তী উইন 10 সংস্করণের পরিষ্কার ইনস্টলগুলির জন্য একটি নতুন রঙের প্যালেট হতে চলেছে the বর্তমান প্যালেটটির কয়েকটি স্ক্রিনশট রয়েছে ; নোটটি 1;37mএকই 97m, উভয় অর্থ "উজ্জ্বল সাদা")
বব

1
@ ইয়ড মূলত, কনহস্ট এখনও সাহসী সমর্থন করে না। উজ্জ্বল হ'ল একটি সাহসের বিকল্প, এবং আপনি ইতিমধ্যে উজ্জ্বল রঙটি ডিফল্টরূপে ব্যবহার করছেন। আপনি যদি সত্যিই সাহসী চান, আপনি কোনও বিকল্প টার্মিনাল যেমন ConEmu ব্যবহার করতে পারেন - তবে দেখে মনে হচ্ছে এএনএসআই সাহসের পক্ষে তাদের সমর্থন সম্পূর্ণ হয় না। আইএমও, এটি ঝামেলার মতো নয়।
বব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.