tput
tipik kabuk komut dosyasının kullanılabilir olandan daha az bulacağı ifadeleri (örneğin sgr
ve içinde setaf
) işleyebilir . Dan ilgili ne bir fikir edinmek için, çıkış görmek infocmp
ile -f
(biçimlendirme) seçeneği uygulanır. İşte bu dizeleri xterm'in terminfo açıklamalarından kullanan örneklerden biri :
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,
Biçimlendirme işleri böler - aynı şeyi yapan bir komut dosyası veya program bu dönüşleri takip etmek zorunda kalır. Çoğu insan vazgeçer ve sadece en kolay ipleri kullanır.
16 renk özelliği, her biri ön plan ve arka plan için 16 kodu iki aralıkla eşleyen IBM aixterm'den ödünç alınmıştır;
- 30-37 ve 90-97 üzerine ön plan
- 40-47 ve 100-107 üzerine arka plan
Basit bir komut dosyası
#!/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
ve çıktı nasıl çalıştığını gösterir:
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
Numaraları aixterm ECMA-48 renk (aynı zamanda "ANSI" olarak da bilinir) eşleştirmek için 30-37 ve 40-47 aralıkları kullanır ve kodlar için 90-107 aralığı kullandığından bölünür olmayan standardında tanımlanmıştır.
TERM=xterm-16color
Etkisini görebileceğiniz xterm kullanan bir ekran görüntüsü .
Daha fazla okuma:
printf
ve ANSI kaçış dizileriyle çalışır, ancaktput
başarısız olur (en azından kutumda).