Saya mengetahui perpustakaan dalam bahasa seperti Ruby dan Javascript untuk mempermudah pewarnaan skrip terminal Anda dengan menggunakan nama warna seperti "merah".
Tetapi apakah ada sesuatu seperti ini untuk skrip shell di Bash, atau Ksh, atau apa pun?
bash
shell-script
terminal
colors
kaca
sumber
sumber
Jawaban:
Anda dapat menentukan warna dalam skrip bash Anda seperti:
Dan kemudian menggunakannya untuk mencetak dalam warna yang Anda inginkan:
sumber
Anda bisa menggunakan
tput
ATAUprintf
Menggunakan
tput
,cukup buat fungsi seperti di bawah ini dan gunakan
Anda dapat memanggil fungsi di atas menggunakan
shw_err "WARNING:: Error bla bla"
Menggunakan
printf
sumber
echo -e
tidakprintf
, dan juga perlu peringatan yang berbeda daritput
opsi karena tidak secara otomatis beradaptasi$TERM
.Dalam zsh :
sumber
print -P '%F{red}blah%f'
Untuk penggunaan umum yang sederhana (baris teks penuh hanya dalam satu warna, dengan mengikuti baris baru) Saya memodifikasi kode jasonwryan sebagai berikut:
sumber
awk -v red="$(printf '\e[1;31m%%s\e[0m\\n')" -v green="$(printf '\e[1;32m%%s\e[0m\\n')" 'BEGIN { printf red, "This text is in red"; printf green, "This text is in green" }'
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 Andagrep
output seperti itu, Anda akan melihatnya\e[*
di hasil)Lihat tutorial
tput
ini untuk .Kamu bisa menulis :
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:Untuk mencegah hal ini terjadi, atur
tput
variabel Anda seperti yang diusulkan dalam solusi ini .sumber