Özet
tput [-T tür] yetenek_adı [parametre ...]
tput [-T tür] init
tput [-T tür] reset
tput [-T tür] longname
tput -S
tput -V
Açıklama
tput yardımcı programı, terminale bağlı yeteneklerin ve bilgilerin değerlerini kabuk için kullanılabilir hale getirmek, terminali başlatmak ya da sıfırlamak veya istenen terminal türünün uzun adını döndürmek için terminfo veritabanını kullanır.
Sonuç, sorgulanan yeteneğin türüne bağlıdır:
dize:tput, dizeyi standart çıktıya yazar. Sonuna yeni satır karakteri eklemez.tamsayı:tput, ondalık değeri sonuna yeni satır karakteri ekleyerek standart çıktıya yazar.mantıksal:tputyalnızca çıkış kodunu ayarlar. Terminal bu yeteneğe sahipse doğru için0, sahip değilse yanlış için1döndürür ve standart çıktıya hiçbir şey yazmaz.
Standart çıktıda döndürülen bir değeri kullanmadan önce uygulama çıkış kodunu denetlemelidir. Örneğin kabukta $? değeri 0 olmalıdır. Yeteneklerin ve ilgili yetenek adlarının tam listesi için terminfo(5) sayfasına bakın.
Seçenekler
-T tür: Terminal türünü belirtir. Normalde bu seçenek gerekmez, çünkü varsayılan değerTERMortam değişkeninden alınır.-TbelirtilirseLINESveCOLUMNSkabuk değişkenleri de yok sayılır.-S: Tek birtputçağrısında birden fazla yetenek işlenmesine izin verir. Yetenekler komut satırı yerine standart girdiden geçirilmelidir. Her satırda yalnızca bir yetenek adı bulunabilir. Bu seçenek,0ve1mantıksal ve dize çıkış kodlarının anlamını değiştirir.-V: Programda kullanılanncursessürümünü bildirir ve çıkar.
İşlenenler
yetenek_adı:terminfoveritabanındaki yeteneği belirtir.termcapdesteği derlenmişse yetenek içintermcapadı da kabul edilir.parametre: Yetenek parametre alan bir dizeyse, parametreler dizeye yerleştirilir.
Parametrelerin çoğu sayıdır. Yalnızca birkaç terminfo yeteneği dize parametreleri gerektirir; tput, hangilerinin dize olarak geçirileceğine karar vermek için bir tablo kullanır. Normalde ikame işlemi için tparm(3X) işlevi kullanılır. Yetenek için parametre verilmezse tput, ikame yapmadan dizeyi yazar.
Özel İşlenenler
tput aşağıdaki özel işlenenleri destekler:
init: Kullanıcının terminali içinterminfogirişi varsa terminali başlatır.reset: Terminali sıfırlar. Sıfırlama dizeleri yoksa, varsa başlatma dizelerini kullanır; aksi durumdainitile aynı davranır.longname: Kullanıcının terminali içinterminfogirişi varsa terminalin uzun adını yazdırır.
init kullanıldığında şu işlemler yapılır:
- Varsa, terminalin başlatma dizeleri
terminfo(5)sayfasındaki Sekmeler ve Başlatma bölümünde açıklandığı gibi çıktı olarak verilir. - Girişte belirtilen tüm gecikmeler, örneğin yeni satır gecikmeleri,
ttysürücüsünde ayarlanır. - Sekmelerin genişletilmesi, girişteki belirtimlere göre açılır veya kapatılır.
- Sekmeler genişletilmiyorsa standart sekmeler ayarlanır; bu her 8 boşlukta bir sekme anlamına gelir.
Bir giriş bu işlemlerden biri için gerekli bilgileri içermiyorsa ilgili işlem sessizce atlanır.
reset kullanıldığında, varsa terminalin sıfırlama dizeleri (rs1, rs2, rs3, rf) çıktı olarak verilir. Sıfırlama dizeleri yoksa ancak başlatma dizeleri varsa başlatma dizeleri çıktı olarak verilir.
longname kullanıldığında, terminalin uzun adı çıktı olarak verilir. Uzun ad, terminfo veritabanındaki terminal tanımının ilk satırındaki son addır; ayrıntılar için term(5) sayfasına bakın.
tput, reset adlı bir bağlantı üzerinden çağrılırsa tput reset ile aynı etkiye sahip olur. Benzer davranış için tset(1) sayfasına bakın.
Örnekler
Terminali TERM ortam değişkenindeki terminal türüne göre başlatır:
tput init
TERM değerini geçersiz kılarak bir AT&T 5620 terminalini sıfırlar:
tput -T5620 reset
İmleci 0. satır, 0. sütuna taşımak için gereken diziyi gönderir:
tput cup 0 0
Geçerli terminal için ekranı temizleme dizisini yazdırır:
tput clear
Geçerli terminal için sütun sayısını yazdırır:
tput cols
450 terminali için sütun sayısını yazdırır:
tput -T450 cols
Geçerli terminal için belirginleştirme modunu başlatan ve sonlandıran kabuk değişkenlerini ayarlar:
bold=`tput smso`
offbold=`tput rmso`
echo "${bold}Lütfen adınızı yazın: ${offbold}\c"
Geçerli terminalin hard-copy terminal olup olmadığını çıkış kodu üzerinden belirtir:
tput hc
İmleci 23. satır, 4. sütuna taşımak için gereken diziyi gönderir:
tput cup 23 4
Parametre yerleştirmeden imleç hareketi için terminfo dizesini gönderir:
tput cup
TERM ortam değişkeninde belirtilen terminal türü için terminfo veritabanındaki uzun adı yazdırır:
tput longname
Tek bir çağrıda birkaç yeteneği işler:
tput -S <<!
clear
cup 10 10
bold
!
Bu son örnek ekranı temizler, imleci 10,10 konumuna taşır ve kalın modu açar. Liste, tek başına bir satırda yer alan ünlem işaretiyle sonlandırılır.
Dosyalar
/usr/share/terminfo: Derlenmiş terminal tanım veritabanı./usr/share/tabset/*: Bazı terminaller için terminale çıktı verilmeye uygun biçimdeki sekme ayarları. Bunlar kenar boşluklarını ve sekmeleri ayarlayan kaçış dizileridir. Daha fazla bilgi içinterminfo(5)sayfasındaki Sekmeler ve Başlatma bölümüne bakın.
Çıkış Kodları
-S seçeneği kullanılırsa tput, her satırdaki hataları denetler. Hata bulunursa çıkış kodunu 4 artı hatalı satır sayısı olarak ayarlar. Hata bulunmazsa çıkış kodu 0 olur.
-S kullanıldığında hangi satırın başarısız olduğuna dair ayrı bir gösterge verilmez; bu nedenle çıkış kodu 1 görünmez. Çıkış kodları 2, 3 ve 4 olağan anlamlarını korur.
-S kullanılmazsa çıkış kodu yetenek türüne bağlıdır:
mantıksal: Doğru için0, yanlış için1döndürülür.dize: Yetenek bu terminal türü için tanımlanmışsa0döndürülür ve değer standart çıktıya yazılır. Tanımlanmamışsa1döndürülür ve standart çıktıya hiçbir şey yazılmaz.tamsayı: Yetenek tanımlanmış olsun veya olmasın her zaman0döndürülür. Yetenek bu terminal türü için tanımlanmamışsa standart çıktıya-1yazılır.diğer:resetveyainitilgili dosyaları bulamazsa çıkış kodu4 + errnoolarak ayarlanır.
Diğer tüm çıkış kodları hata belirtir.
Teşhisler
tput aşağıdaki hata durumlarında ilgili çıkış kodlarını ayarlar:
| Çıkış kodu | Anlam |
|---|---|
0 |
Sayısal bir yetenek bu terminal türü için terminfo(5) veritabanında belirtilmemiş olabilir. Örneğin tput -T450 lines veya tput -T2621 xmc. |
1 |
Hata mesajı yazdırılmaz; ayrıntı için çıkış kodları bölümüne bakın. |
2 |
Kullanım hatası. |
3 |
Bilinmeyen terminal türü veya eksik terminfo veritabanı. |
4 |
Bilinmeyen terminfo yeteneği. |
>4 |
-S seçeneğinde hata oluştu. |
Taşınabilirlik
longname ve -S seçenekleri ile cup örneğinde kullanılan parametre ikamesi özellikleri, BSD curses veya SVr4 öncesindeki AT&T/USL curses tarafından desteklenmez.
X/Open yalnızca clear, init ve reset işlenenlerini belgeler. Bu uygulamada clear, yetenek adı desteğinin bir parçasıdır. Solaris, IRIX64 ve HPUX gibi SVr4 tabanlı sistemlerdeki diğer tput uygulamaları ile AIX ve Tru64 gibi sistemler de yetenek adı işlenenlerini destekler.
FreeBSD ve NetBSD gibi bazı platformlar, ilgili tput komutlarında terminfo yetenek adları yerine termcap adlarını tanır.
Yetenek adı işlenenlerini destekleyen çoğu uygulama, parametreleri genişletmek için tparm işlevini kullanır. Bu işlev sayısal ve dize parametrelerinin karışımını bekler ve tput uygulamasının hangi türü kullanacağını bilmesini gerektirir. Bu uygulama standart yetenek adı işlenenleri için bunu belirlemek üzere bir tablo, standart dışı yetenek adı işlenenlerini analiz etmek için de dahili bir kütüphane işlevi kullanır. Diğer uygulamalar, yalnızca basamak içeren bir işlenenin sayı olarak kullanılmasının amaçlandığını tahmin edebilir.
Ayrıca Bakınız
clear(1), stty(1), tabs(1), terminfo(5), curs_termcap(3X)
Bu belge, ncurses sürüm 5.7'yi (yama 20081102) tanımlar.
tput(1)