Jawaban:
Cara paling kompatibel untuk melakukan ini adalah menggunakan tputuntuk menemukan urutan yang tepat untuk dikirim ke terminal:
bold=$(tput bold)
normal=$(tput sgr0)
maka Anda dapat menggunakan variabel $bolddan $normalmemformat hal-hal:
echo "this is ${bold}bold${normal} but this isn't"
memberi
ini berani tapi ini tidak
tput smul
tputadalah perintah yang bagus dengan banyak perintah untuk berbagai tugas.
motdfile. Bagaimana / di mana saya akan mendefinisikan $bolddan $normalvariabel dalam contoh itu?
Untuk menerapkan gaya pada string Anda, Anda dapat menggunakan perintah seperti:
echo -e '\033[1mYOUR_STRING\033[0m'
Penjelasan:
-eOpsi ini berarti bahwa string yang lolos (backslashed) akan ditafsirkanBilangan bulat yang mungkin adalah:
[0mmenawarkan 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 -eopsi. 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
\033Anda dapat menggunakan \esepertiecho -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 )