Lebih baik menggunakan tput
yang akan menangani karakter melarikan diri tergantung pada kemampuan output / terminal. (Jika terminal tidak dapat mengartikan \e[*
kode warna, maka itu akan menjadi "tercemar" yang membuat output lebih sulit untuk dibaca. (Atau kadang-kadang, jika Anda grep
output seperti itu, Anda akan melihatnya \e[*
di hasil)
Lihat tutorialtput
ini untuk .
Kamu bisa menulis :
blue=$( tput setaf 4 ) ;
normal=$( tput sgr0 ) ;
echo "hello ${blue}blue world${normal}" ;
Berikut ini adalah tutorial untuk mencetak Jam berwarna di terminal.
Juga, perhatikan bahwa tput
mungkin masih mencetak karakter escape ketika mengarahkan kembali STDOUT ke file:
$ myColoredScript.sh > output.log ;
# Problem: output.log will contain things like "^[(B^[[m"
Untuk mencegah hal ini terjadi, atur tput
variabel Anda seperti yang diusulkan dalam solusi ini .