tput
(में उदाहरण के लिए भाव संभाल कर सकते हैं sgr
और setaf
) जो ठेठ खोल-scripter प्रयोग करने योग्य की तुलना में कम होगी। क्या शामिल है, इसका अंदाजा लगाने infocmp
के लिए -f
(स्वरूपण) विकल्प के साथ आउटपुट देखें । यहाँ एक उदाहरण है xterm के टर्मो विवरण से उन तार का उपयोग करते हुए :
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
संख्या को विभाजित कर रहे हैं क्योंकि aixterm मैच के लिए ECMA-48 रंग (जिसे "एएनएसआई" कहा जाता है) 30-37 और 40-47 पर्वतमाला का उपयोग करता है, और कोड के लिए 90-107 रेंज का उपयोग करता है नहीं मानक में परिभाषित।
यहाँ xterm का उपयोग करते हुए एक स्क्रीनशॉट है TERM=xterm-16color
, जहाँ आप प्रभाव देख सकते हैं।
आगे की पढाई:
printf
एएनएसआई से बचने के क्रम के साथ काम करेगा , लेकिनtput
विफल रहता है (कम से कम मेरे बॉक्स पर)।