জিএনইউ গ্রেপের জন্য --color = স্বয়ংক্রিয় বিকল্পটি কী বোঝায়?


14

এএএএএফসিটি, জিএনইউর পক্ষে ম্যান পেজও নয় grepবা এর অর্থ info grepকী তা বোঝানোর জন্য ডিজাইন করে না --color=auto

আমাকে অবশ্যই গ্রহের খুব কম লোকদের মধ্যে একজন হতে হবে যার জন্য এই বিকল্পটির অর্থ অবিলম্বে সুস্পষ্ট নয়।

আমি এটাকে লক্ষ্য করি যে --color=auto"" মাঝে মাঝে সামান্য " --color=neverএবং --color=alwaysএটি এখনও অনেক বেশি অনির্ধারিত ছেড়ে যায়।

উত্তর:


14

নিয়মগুলি একই রকম ls, এটি এতে নথিভুক্ত করার চেয়ে ভাল কাজ করে man ls। বরাত দিয়ে:

ফাইলের প্রকারের পার্থক্য করতে রঙ ব্যবহার করা ডিফল্ট এবং
--color = কখনওই অক্ষম । --Color = অটো দিয়ে, ls কেবল তখনই কোড কোডগুলি বের করে যখন
স্ট্যান্ডার্ড আউটপুট টার্মিনালের সাথে সংযুক্ত থাকে। LS_COLORS পরিবেশের
পরিবর্তনশীল সেটিংস পরিবর্তন করতে পারে। সেট করার জন্য ডারকলার কমান্ডটি ব্যবহার করুন।

সুতরাং এটি কমান্ডটি কেবলমাত্র রঙিন বিন্যাসকে যুক্ত করবে যখন আউটপুটটি টার্মিনালে চলে যাচ্ছে এবং না, বলুন, যখন এটি কোনও পাইপ যাচ্ছিল যেখানে পাইপ গ্রহণ করা প্রোগ্রামটি রঙ বিন্যাসকে ভালভাবে পরিচালনা করতে পারে না।


3
হ্যাঁ, আমি যে প্রধান সময়টি চালিয়েছি তা হ'ল কম pip আপনি যদি ব্যবহার করেন less -Rতবে আপনি ম্যাচ হাইলাইট করতে পারেন তবে --color=alwaysএটির কাজ করার জন্য আপনাকে গ্রেপ নির্দিষ্ট করতে হবে।
হলোয়ে

10

যেহেতু grepএকটি জিএনইউ প্রোগ্রাম হ'ল অন্য বিকল্পের উত্স কোডটি দেখে নেওয়া যেতে পারে।


অভ্যন্তরীণভাবে গ্রেপ পরীক্ষার static int color_optionজন্য হয় 0, 1বা 2

  • 0 রঙিন আউটপুট কখনও ব্যবহার করবেন না
  • 1 সর্বদা রং ব্যবহার করুন
  • 2 টার্মিনালে প্রিন্ট করার সময় কেবল রঙগুলি ব্যবহার করুন

এখন যখন আপনি হাতে তুলে --color=autoআপনার CLI উপর একটি আর্গুমেন্ট হিসাবে grep, এটা অভ্যন্তরীণভাবে পরিবর্তনশীল সেট করে color_optionকরতে 2

যদি color_optionসমান 2 grepতারপর আরও পরীক্ষার কিনা STDOUTএকটি টার্মিনাল অথবা ব্যবহারকারীর লিঙ্ক করা হয়েছে মাধ্যমে outpit রঙীন করা অক্ষম shell environment variables। যদি পূর্বেরটি সত্য হয় এবং বর্ণযুক্ত আউটপুটটির অনুমতি দেওয়া হয়, grepতবে কোন রঙগুলি ব্যবহার করা উচিত তা মূল্যায়নের সাথে অবশেষে অবশেষে আপনার CLIরঙটি প্রিন্ট করে ।


উত্স: (গ্রেপ 2.21)

grep.c line 306, 2374, 2440
colorize-posix.c line 36
man isatty 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.