ধারণাটি আমার অ্যাপ্লিকেশনটির জন্য প্রোগ্রামটি প্রিন্ট করতে না পারলে আউটপুটটি রঙ না করার জন্য জানায়, বলুন, ক্রোন জব থেকে কোনও ফাইলটিতে লগিং আউটপুট, রঙিন আউটপুট লগ করার দরকার নেই, তবে ম্যানুয়ালি চলাকালীন আমি দেখতে চাই আউটপুট রঙিন।
এই ব্যবহারের ক্ষেত্রে, প্রোগ্রামগুলি সাধারণত কি করে (যেমন GNU ls বা GNU গ্রেপ সহ --color=auto
) তাদের রঙগুলি যদি তাদের আউটপুটটি টার্মিনালে যায় এবং অন্যথায় কোনও রঙ হয় না। টার্মিনালগুলি যা এএনএসআই রঙ-পরিবর্তনের ক্রমগুলিকে সমর্থন করে না এটি যথেষ্ট বিরল যা তাদের ব্যবহারকারীদের ডিফল্ট পছন্দটিকে ওভাররাইড করার জন্য গ্রহণযোগ্য। যাই হোক না কেন, আপনার অ্যাপ্লিকেশনটিতে রঙ জোর করে বা বন্ধ করার বিকল্প রয়েছে তা নিশ্চিত করুন।
শেল স্ক্রিপ্টে, [ -t 1 ]
স্ট্যান্ডার্ড আউটপুটটি টার্মিনাল কিনা তা পরীক্ষা করতে ব্যবহার করুন ।
# option processing has set $color to yes, no or auto
if [ $color = auto ]; then
if [ -t 1 ]; then color=yes; else color=no; fi
fi
সিআইপি ব্যবহার করে একটি প্রোগ্রাম থেকে কল করুন isatty(1)
।
# option processing has set use_color to 0 for no, 1 for yes or 2 for auto
if (use_color == 2) use_color = isatty(1);