Genel olarak, mevcut renkleri elde etmek imkansızdır. Bir terminalin kontrol sekansı işlemi, nerede olursa olsun terminalin "içinde" gerçekleşir. Çekirdek sanal terminalleri sağlayan bir işletim sistemi çekirdeği gibi bir terminal emülatörüxterm
ile, geçerli "grafik yorumlama" (yani renk ve nitelikler) kavramı da dahil olmak üzere öykünücünün dahili durumu makinenin üzerindedir. ve teorik olarak erişilebilir. Ancak gerçek bir terminal için bu bilgiler, seri bağlantı yoluyla bağlanan fiziksel olarak ayrı bir makinede bazı RAM konumlarındadır.
Bununla birlikte, bazı terminaller, terminal protokolünün bir parçası gibi bu seri bağlantı üzerinden gönderilen bilgileri okumak için bir mekanizma içerir. Bir programın terminale gönderebileceği ve terminal durumu olarak dahili durumu hakkında bilgi göndermesine neden olan kontrol dizileri sağlarlar . mikeserv
size xterm
terminal öykünücüsünün yanıt verdiği kontrol sekanslarını gösterdi . Ancak bunlar özeldir xterm
. Linux çekirdeğindeki yerleşik terminal emülatörleri ve çeşitli BSD çekirdekleri örneğin farklı terminal tipleridir ve bu tür kontrol dizilerini hiç uygulamamaktadır. Aynısı tüm gerçek terminal aileleri için de geçerlidir.
DEC VT525 terminalleri bir okuma mekanizması uygular, ancak tarafından kullanılanlarla hiçbir ilişkisi olmayan bir dizi kontrol dizisine sahiptir xterm
. Biri, geçerli grafik yorumlamayı istemek için DECRQSS (İstek Seçme veya Ayarlama) dizisini gönderir ve terminal, DECRPSS (Rapor Seçimi veya Ayarı) göndererek yanıt verir. özellikle:
- Ana bilgisayar gönderir: DCS
$
q
m
ST (ayar olarak SGR'nin kontrol fonksiyonu kısmı ile DECRQSS)
- Terminal yanıt verir: DCS
0
$
r
0
;
3
3
;
4
4
m
ST (geçerli ön plan ve arka plan renklerini ayarlayan bir SGR kontrol dizisinin parametreleri ve kontrol fonksiyonu kısmı ile DECRPSS)
Tabii ki, sorunuzun dikkatli bir şekilde okunması, o Avrupa para birimi sistemlerinde çikolata kaplı bir muz salladığını ortaya koyuyor. Ne konum aslında bir çözüm seçilen ve daha sonra bu çözümün bölümün nasıl sordunuz hangi, yapmaya çalıştığımız, bir önceki durumunu korumalıdır bazı colourized çıktı yazmak ederken. Bunu yapmak için sadece bir DEC VT kontrol dizisi değil, bunun için tanınan bir SCO konsolu terminal dizisi xterm
ve çeşitli çekirdek yerleşik terminal emülatörleri ve terminaliniz için ne olduğunu söyleyen bir termcap / terminfo girişi vardır.
Termcap girişler sc
ve rc
. Terminfo girişleri save_cursor
ve restore_cursor
. İsimler etkili olmak için yanıltıcıdır (her ne kadar de jure yerine fiili olan bir şeye güvendiğinize dair bir uyarı görevi görürler ). Gerçek DECSC, DECRC, SCOSC ve SCORC kontrol sekansları mevcut grafik yorumlamayı da kaydeder ve geri yükler.
İşaret ettiğiniz makalenin tamamı, kabuk komut dosyalarından kontrol dizileri oluşturmakla ilgili olduğu için, şimdi aradığınız komut tput
.
daha fazla okuma
echotc Co
veya alabilirsinizechoti colors
, ancak geçerli renk kodu tanımını depolayan bir değişken yoktur.