tput
টিপিক্যাল শেল-স্ক্রিপ্টার ব্যবহারের চেয়ে কম খুঁজে পাওয়া যায় এমন অভিব্যক্তিগুলি (উদাহরণস্বরূপ sgr
এবং এর মধ্যে setaf
) পরিচালনা করতে পারে । থেকে আমরা কী জড়িত একটি ধারণা পেতে, আউটপুট দেখতে infocmp
সঙ্গে -f
(বিন্যাস) বিকল্প প্রয়োগ করা হয়েছে। এক্সটারের টার্মিনো বর্ণনা থেকে এই স্ট্রিংগুলি ব্যবহার করে এখানে উদাহরণগুলির একটি :
xterm-16color|xterm with 16 colors,
colors#16,
pairs#256,
setab=\E[
%?
%p1%{8}%<
%t%p1%{40}%+
%e
%p1%{92}%+
%;%dm,
setaf=\E[
%?
%p1%{8}%<
%t%p1%{30}%+
%e
%p1%{82}%+
%;%dm,
setb=
%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa
%?%ga%{1}%=
%t4
%e%ga%{3}%=
%t6
%e%ga%{4}%=
%t1
%e%ga%{6}%=
%t3
%e%ga%d
%;
m,
setf=
%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa
%?%ga%{1}%=
%t4
%e%ga%{3}%=
%t6
%e%ga%{4}%=
%t1
%e%ga%{6}%=
%t3
%e%ga%d
%;
m,
use=xterm+256color,
use=xterm-new,
ফর্ম্যাটিং জিনিসগুলিকে আলাদা করে দেয় - একই কাজ করার জন্য একটি স্ক্রিপ্ট বা প্রোগ্রামটি সেই মোচড় এবং মোড় অনুসরণ করতে হবে। বেশিরভাগ লোক হাল ছেড়ে দেয় এবং সহজতম স্ট্রিং ব্যবহার করে।
16-রঙের বৈশিষ্ট্যটি আইবিএম অ্যাক্সটার্ম থেকে ধার করা হয়েছে, যা দুটি সীমাতে অগ্রভাগ এবং পটভূমির জন্য 16 টি কোড ম্যাপ করে;
- 30-37 এবং 90-97 এ অগ্রভাগ
- 40-47 এবং 100-107 এ পটভূমি
একটি সাধারণ স্ক্রিপ্ট
#!/bin/sh
TERM=xterm-16color
export TERM
printf ' %12s %12s\n' Foreground Background
for n in $(seq 0 15)
do
F=$(tput setaf $n | cat -v)
B=$(tput setab $n | cat -v)
printf '%2d %12s %12s\n' $n "$F" "$B"
done
এবং আউটপুট দেখায় এটি কীভাবে কাজ করে:
Foreground Background
0 ^[[30m ^[[40m
1 ^[[31m ^[[41m
2 ^[[32m ^[[42m
3 ^[[33m ^[[43m
4 ^[[34m ^[[44m
5 ^[[35m ^[[45m
6 ^[[36m ^[[46m
7 ^[[37m ^[[47m
8 ^[[90m ^[[100m
9 ^[[91m ^[[101m
10 ^[[92m ^[[102m
11 ^[[93m ^[[103m
12 ^[[94m ^[[104m
13 ^[[95m ^[[105m
14 ^[[96m ^[[106m
15 ^[[97m ^[[107m
সংখ্যাগুলি বিভক্ত হয়ে গেছে কারণ এক্সটার্ম ECMA-48 ("এএনএসআই" নামে পরিচিত) রঙের সাথে মেলে 30-30 এবং 40-47 সীমা ব্যবহার করে এবং স্ট্যান্ডার্ডে সংজ্ঞায়িত না কোডগুলির জন্য 90-107 পরিসর ব্যবহার করে।
এক্সটারম ব্যবহার করে এখানে একটি স্ক্রিনশট রয়েছে TERM=xterm-16color
, যেখানে আপনি প্রভাবটি দেখতে পারেন।
আরও পড়া:
printf
এএনএসআই এর সাথে পালানোর ক্রিয়াকলাপের সাথে কাজ করবে , তবেtput
ব্যর্থ হয় (কমপক্ষে আমার বাক্সে)।