Yanıtlar:
Bunu yapmanın en uyumlu yolu tput
terminale göndermek için doğru dizileri bulmaktır:
bold=$(tput bold)
normal=$(tput sgr0)
değişkenleri $bold
ve $normal
şeyleri biçimlendirmek için kullanabilirsiniz :
echo "this is ${bold}bold${normal} but this isn't"
verir
bu cesur ama bu değil
tput smul
tput
ile büyük bir komuttur komutları sürü birçok farklı görevler için.
motd
dosyayla. Bu örnekte $bold
ve $normal
değişkenlerini nasıl / nerede tanımlayabilirim ?
Dizenize bir stil uygulamak için aşağıdaki gibi bir komut kullanabilirsiniz:
echo -e '\033[1mYOUR_STRING\033[0m'
Açıklama:
-e
Seçenek, çıkış karakterli (ters eğik çizgili) dizelerin yorumlanacağı anlamına gelirOlası tamsayılar:
[0m
sunduğuna bakıyordum ve bu da bunu iyi açıklıyor
\033[0m
3
- italik , en azından konsole içinde
Bash'ın, kullanıcının biçimlendirme desteğini açıkça kapatmadığı vt100 uyumlu bir terminalde çalıştığını varsayıyorum.
İlk olarak, seçeneğini echo
kullanarak özel karakterler için desteği açın -e
. Daha sonra, ansi kaçış dizisini kullanın ESC[1m
, örneğin:
echo -e "\033[1mSome Text"
Ansi kaçış dizileri hakkında daha fazla bilgiyi burada bulabilirsiniz: ascii-table.com/ansi-escape-sequences-vt-100.php
echo -e "\033[1mSome Text\033[0m"
aksi takdirde terminalinizin aşağıdaki satırları da kalın olacaktır
\033
kullanabileceğiniz \e
gibiecho -e "\e[1msome text\e[0m"
Teoride şöyle:
# BOLD
$ echo -e "\033[1mThis is a BOLD line\033[0m"
This is a BOLD line
# Using tput
tput bold
echo "This" #BOLD
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL
# UNDERLINE
$ echo -e "\033[4mThis is a underlined line.\033[0m"
This is a underlined line.
Ancak pratikte bunun yerine "yüksek yoğunluklu" renk olarak yorumlanabilir.
(kaynak: http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html )