কমান্ডের শেষে থামার জন্য আমি কীভাবে বাশ শেল PS1 রঙ থামাব?


12

আমার একটি কাস্টম পিএস 1 রঙ রয়েছে যেখানে আমার আসল শেল কমান্ডগুলি একটি পৃথক রঙে রয়েছে, ঠিক তাই আমি দ্রুত কী কী কমান্ডগুলি টাইপ করতে পারি এবং এটি এটিকে কমান্ড আউটপুট থেকে আলাদা করতে পারি।

ধরুন পিএস 1 এর রঙটি কমান্ড প্রম্পটের জন্য 'নীল' তে সেট করা আছে এবং আমার শেলের ডিফল্ট রঙ সাদা।

  • আমি একটি কমান্ড টাইপ করি যেমন ls, (ls -l বর্ণের নীল)
  • আউটপুট এটি উত্পন্ন করে, প্রথম লাইনটি এখনও নীল
  • বাকি সমস্ত লাইন সাদা হিসাবে আসে

আমি যা চাই তা হ'ল সাদা হওয়ার কমান্ডের পরে আউটপুট।

আরেকটি উদাহরণ:

  • আমি একটি কমান্ড 'বিড়াল' টাইপ করি, রঙ নীল
  • আউটপুট আসে, পুরো আউটপুট নীল

কমান্ড প্রম্পটটি 'ব্লু' টাইপ করার সময় আমি আউটপুটটি 'সাদা' হতে চাই

কিছু কমান্ডে, এটি ঠিক আছে, অন্যান্য কমান্ডগুলি, একই রঙ আউটপুটটির প্রথম লাইনে ওভারফ্লো হয়ে যায় এবং তারপরে ডিফল্ট রঙের কিক ইন হয় এবং কিছু অন্যান্য কমান্ড, পুরো আউটপুট (যেমন বিড়াল) একই রঙ থাকে।

আমি যে রঙগুলি টাইপ করেছি তা কেবল একটি রঙে রেখে বাকীটি ডিফল্ট রাখার উপায় আছে?

আমি ওএসএক্স এ আছি

সম্পাদনা # 1

এখানে একটি স্ক্রিনশট যা @ ডারবার্টের সাথে যুক্ত করা মন্তব্যে লিঙ্কযুক্ত যা আমি যা খুঁজছি তা দেখায়।

                 SS # 1


2
আপনাকে আমাদের প্রম্পট দেখাতে হবে যাতে আমরা ত্রুটিগুলি চিহ্নিত করতে পারি।
গ্লেন জ্যাকম্যান

উত্তর:


14

বাশ কমান্ডটি কার্যকর করার আগে আপনি মূলত টার্মিনাল রঙটি পুনরায় সেট করতে চান। এটি একটি দিয়ে করা যেতে পারে trap

উদাহরণ স্বরূপ:

trap '[[ -t 1 ]] && tput sgr0' DEBUG

DEBUGকমান্ডের ঠিক আগেই বাশ ফাঁদ কার্যকর করে , সুতরাং এর ফলে tput sgr0(যা ফর্ম্যাট বৈশিষ্ট্য পুনরায় সেট করে) প্রতিটি কমান্ডের আগে চালানো হবে।

[[ -t 1 ]]নিশ্চিত করুন যে stdout- এ আসলে একটি টার্মিনাল করতে অনুগ্রহ করে একটি নিরাপত্তা চেক করুন। এমন কিছু ঘটনা ঘটতে পারে যেখানে ব্যাশের STDOUT কোনও টার্মিনাল (পাইপিং, রিমোট এসএস, ইত্যাদি) এর সাথে সংযুক্ত না থাকে এবং তাই আপনি tputটার্মিনাল অব্যাহতি কোডগুলি প্রেরণ করতে চান না ।


তুমি কোথায় রেখেছ? ধরা যাক পিএস 1 রঙটি সেট করে না। এখন আপনি এই কমান্ডটি কার্যকর করতে এই লাইনটি যুক্ত করবেন কীভাবে ব্যবহারকারী তার কমান্ডে প্রবেশ করে এবং টিপে প্রবেশ করার পরে?
পলিম

1
@ পোলিম আপনার .bashrc(বা যেখানেই $PS1সেট করা আছে) আমি এটিকে $PS1সংজ্ঞাটির ঠিক পাশে রেখেছি যাতে আপনি জানতে পারেন যে তারা সম্পর্কিত related
প্যাট্রিক

ঠিক আছে বাহ যে কাজ করে। এই ভুল হতে পারে যে কোন সম্ভাবনা?
পলিম

@ পলিম আর নেই
প্যাট্রিক

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