কিভাবে কমান্ড লাইন থেকে টার্মিনাল রঙ ক্ষমতা পরীক্ষা?


0

আমি লিখি:

  $ infocmp -1 xterm
        ...
    colors#8,
    bold=\E[1m,
    blink=\E[5m,
        ...
  $ tput -Txterm colors && echo OK || echo err
8
OK
  $ tput -Txterm blink && echo OK || echo err
^[[5mOK

তাই আমি ব্যবহার করতে পারেন tput Retminal ক্ষমতা পরীক্ষা করতে।

এই সমাধান পোর্টেবল হয়? অন্য কোন সমাধান আছে?

অথবা আমি সমাধান সঙ্গে আটকে থাকতে পারে:

  $ [ $TERM = xterm ] && echo ok || echo err
ok

একটি ব্যবহার .bashrc মধ্যে PS1 সেট করা হয়। Sh স্ক্রিপ্ট থেকে মনোযোগ নিতে আউটপুট highliting জন্য অন্য। আমি এই ধরনের সমাধান ব্যবহার করতে পারেন:

PS1='bash# '
case "$TERM" in
  xterm*) PS1='\[\033[35m\]bash# \[\033[0m\]'
  ;;
esac

যা ব্যাশের (শুধুমাত্র কার্যকর) অন্তর্নির্মিত কমান্ড ব্যবহার করে এবং আমার সমস্ত ক্ষেত্রে কাজ করে তবে দুর্ভাগ্যবশত পোর্টেবল হয় না।

উত্তর:


1

ব্যবহার tput অপারেটিং সিস্টেমের একটি বড় সংখ্যা পোর্টেবল হয়।

তবে রিটার্ন কোডটি পরীক্ষা করে কেবল আপনাকে জানায় যে প্ল্যাটফর্মের টারমিনফো ডেটাবেসটির 'xterm' এর এন্ট্রির মধ্যে সেই ক্ষমতাটির সংজ্ঞা আছে কিনা।

বর্তমানে ব্যবহৃত 'xterm' ক্লায়েন্ট আসলেই সেই সামর্থ্যকে সমর্থন করে কিনা তা প্রত্যাবর্তন কোড আপনাকে জানাচ্ছে না।

উল্লেখ্য যে একটি দুর্দান্ত ধরণের সফটওয়্যার প্রোগ্রাম রয়েছে যা দাবি করে 'xterm' সামঞ্জস্যপূর্ণ । এটি সম্ভবত সকলের 'xterm' বৈশিষ্ট্যগুলিকে সমর্থন করে না, বিশেষত এটি বিবেচনা করা হয়েছে যে xterm মুক্তির রেফারেন্স বাস্তবায়নের কয়েকটি ধারাবাহিক সংস্করণ রয়েছে এবং সম্ভবত কিছু ফর্ক। Xterm রক্ষণাবেক্ষণকারী বলছে "কেউ xterm এর নিয়ন্ত্রণের অর্ধেক প্রয়োগ করে না।"

যতদূর আমি জানি, স্বাভাবিক মানদণ্ড সংস্থাগুলির (ANSI, ECMA, ওপেন গ্রুপ) কোনটিই কোনও স্ট্যান্ডার্ড প্রকাশ করেনি যা xterm সংজ্ঞায়িত করে। Xterm বর্তমান রক্ষণাবেক্ষণ এছাড়াও বজায় রাখে VT100 পরীক্ষা প্রোগ্রাম (Vestest) তার xterm কাজ সাহায্য।

সুতরাং, সম্ভবত কোনও অ্যাপ্লিকেশনটি টিআরএম মানের ব্যবহার করতে পারে না এটি নিশ্চিত করার জন্য যে কোনও টার্মিনাল xterm বলে দাবি করে প্রকৃতপক্ষে একটি নির্দিষ্ট xterm বৈশিষ্ট্যটিকে সমর্থন করে। অন্তত xterm বৈশিষ্ট্য কোনো ইচ্ছার পছন্দ জন্য না। যদি আপনি একজন মানুষকে জড়িত করেন (যেমন আমি মনে করেছিলাম সবচেয়ে ভাল) আপনি হয়তো আরও ভাল সুযোগ পাবেন।


ঠিক আছে. টার্মিনাল তার ক্ষমতা সম্পর্কে বলতে পারে না তাই $ TERM ~ = xterm * heuristics বেশ ভাল।
gavenkoa

4

হ্যাঁ, এটা পোর্টেবল। কিভাবে এই সম্পর্কে:

# BASH : Configure things differently if current terminal has >= 8 colors.
if which tput > /dev/null 2>&1 && [[ $(tput -T$TERM colors) -ge 8 ]]; then
    echo "Configure stuff to use colors here!"
else
    echo "No tput or less than 8 colors, default to no coloring"
fi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.