Jawaban:
Cara paling kompatibel untuk melakukan ini adalah menggunakan tput
untuk menemukan urutan yang tepat untuk dikirim ke terminal:
bold=$(tput bold)
normal=$(tput sgr0)
maka Anda dapat menggunakan variabel $bold
dan $normal
memformat hal-hal:
echo "this is ${bold}bold${normal} but this isn't"
memberi
ini berani tapi ini tidak
tput smul
tput
adalah perintah yang bagus dengan banyak perintah untuk berbagai tugas.
motd
file. Bagaimana / di mana saya akan mendefinisikan $bold
dan $normal
variabel dalam contoh itu?
Untuk menerapkan gaya pada string Anda, Anda dapat menggunakan perintah seperti:
echo -e '\033[1mYOUR_STRING\033[0m'
Penjelasan:
-e
Opsi ini berarti bahwa string yang lolos (backslashed) akan ditafsirkanBilangan bulat yang mungkin adalah:
[0m
menawarkan fungsi dan ini menjelaskannya dengan baik
\033[0m
3
- cetak miring , setidaknya dalam konsole
Saya berasumsi bash sedang berjalan pada terminal yang kompatibel dengan vt100 di mana pengguna tidak secara eksplisit mematikan dukungan untuk pemformatan.
Pertama, aktifkan dukungan untuk karakter khusus di echo
, menggunakan -e
opsi. Kemudian, gunakan urutan pelarian ansi ESC[1m
, seperti:
echo -e "\033[1mSome Text"
Lebih lanjut tentang urutan pelarian ansi misalnya di sini: ascii-table.com/ansi-escape- berikutnyaences-vt-100.php
echo -e "\033[1mSome Text\033[0m"
jika tidak, baris berikut terminal Anda juga akan dicetak tebal
\033
Anda dapat menggunakan \e
sepertiecho -e "\e[1msome text\e[0m"
Secara teori seperti itu:
# 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.
Tetapi dalam praktiknya itu dapat ditafsirkan sebagai warna "intensitas tinggi".
(sumber: http://unstableme.blogspot.com/2008/01/ansi-escape- berikutnyaences-for-writing-text.html )