Yanıtlar:
-n
Sonunda yeni bir satır yankılanmasını önler.$'
dizede ters eğik çizgi karakterlerinin ANSI C standardında belirtildiği şekilde değiştirilmesine neden olan bir Bash komutudur. Daha fazla bilgi\e
= ESCape.\e]0;
pencerenin başlığını , bu durumda "Merhaba Dünya" olarak ayarlamak için kullanılan bir komuttur.\e[0;
normal metin modunu \e]0;
ayarlar , ancak pencere başlığını ayarlar. ANSI Kontrol Dizisi İntrodüseri (CSI \e[
) ve İşletim Sistemi Komutu (OSC \e]
) arasındaki fark önemlidir, ancak kaçırılması kolaydır.
\a
bu özel durumda zili çalmaz, ancak pencerenin başlığına bir son sınırlayıcı olarak kaçış dizisinin bir parçasıdır.
XTerm'de (veya onu taklit eden herhangi bir şey), pencerenin başlığını "Merhaba Dünya" olarak ayarlar. \e]
"işletim sistemi komutu" (OSC) için ASNI çıkış kodu; bu, esas olarak, ne anlama geldiğini tanımlamak için işletim sistemine bağlı olduğu anlamına gelir; XTerm'de, <OSC>0;text<bel>
pencere başlığını ayarlamak için kullanılır.
Bkz wikipedia ve Edward Moy en XTerm dizisi listesi ( "İşletim Sistemi Kontrolleri" bölümü için arama).
\e]0;
geçerli bir ANSI kodu değil, "normal ekran" alması gerekiyor \e[0m
. Ƭᴇcʜιᴇ007'nin bağlantısı altındaki metinde belirtildiği gibi, bir kaçını aynı sırada birleştirebilirsiniz:
$ echo -en "\ e [0; 31; 7m TEST \ e [0m" TEST $ _
Bu TEST
ters kırmızı olacaktır
Kaçış dizisi ayrıştırma için -e gerektiğine dikkat edin. -n yapar yankı yok sonunda (CR +) LF baskı.
Daha da iyisi, tput
komut kullanılarak terminfo kodları kullanmak - man 5 terminfo
teknik ama muhtemelen oldukça tamamlandı. Neden tput? Terminaller her zaman ANSI olmadığından terminfo, mümkün olduğu kadar çok terminale tek bir arayüz sağlayarak "düzeltmeye" çalışır.
... öyleyse echo "$(tput sgr0)"
- aynı echo -e "\e[0m"
- bir ANSI terminaliniz varsa.
printf "\033]0;Hello World\07"
.