Anda dapat meneruskan hasilnya ke program yang melakukan pewarnaan. Misalnya, ada program seperti pycolor
:
pycolor module.py
Untuk membangun milik Anda sendiri:
red="$(tput setaf 1)"
reset="$(tput sgr0)"
echo $'foo\nbar' | sed -e "s/\(bar\)/$red\1$reset/"
Lebih lanjut tentang keluaran warna.
Tidak terlalu; warna keluaran program tertentu dikontrol oleh perintah, bukan oleh terminal.
Yang mengatakan, dengan asumsi terminal Anda memahami kode escape ANSI untuk warna (kebanyakan), Anda dapat menggunakan kode escape untuk mengatur warna prompt yang Anda inginkan di awal prompt, dan warna keluaran yang Anda inginkan di akhir; ini akan menghasilkan baris perintah Anda juga dalam warna apa pun yang Anda atur untuk keluaran, tetapi itu mungkin sedekat mungkin dengan apa yang Anda cari. Misalnya, berikut ini:
$ export PS1='\[\033[00;35m\]\u\[\033[00m\]@\[\033[00;35m\]\H\[\033[00m\]:\[\033[00;33m\]\W\[\033[00m\] \$\[\033[00;34m '
akan memberi Anda prompt yang terlihat seperti:
[email protected]:wd $ _
dengan 'user' dan 'host' dalam warna ungu, 'wd' (cwd Anda) dalam warna coklat (kuning tua), dan semuanya setelah '$ ' dalam apa pun yang digunakan terminal Anda untuk biru muda. (Xterm default akan merender ini dalam cyan; gnome-terminal tampaknya default ke warna biru cornflower yang agak bagus.)
Kode warna sebenarnya, sebagaimana ditentukan dalam format yang diperlukan untuk bash, misalnya, \[\033[00;35m\]
, di mana 00;35
adalah spesifikasi warna sebenarnya; 00
terkemuka jarang berubah, tetapi dapat menghasilkan efek IIRC bold (01), underline (??), dan reverse video (??), sedangkan trailing '35' adalah warna sebenarnya, yang dalam hal ini berwarna ungu.
Sangat sulit untuk menemukan daftar kode warna ANSI yang layak, tetapi warna latar depan berkisar dari 30 hingga 37, dan latar belakang dari 40 hingga 47, sebagai berikut:
color fg bg
black 30 40
red 31 41
green 32 42
yellow 33 43
blue 34 44
purple 35 45
cyan 36 46
gray/white 37 47
Perlu diingat bahwa, karena Anda menyetel warna default untuk semua yang mengikuti prompt Anda, program yang Anda jalankan yang tidak menyetel warnanya sendiri melalui kode pelarian akan menggunakan warna itu -- misalnya, jika Anda menjalankan pager, Anda cenderung melihat keluarannya dengan warna yang sama dengan yang Anda tetapkan untuk perintah lain. Sedangkan perintah yang lakukan mengatur warna mereka sendiri melalui kode pelarian akan mengabaikan upaya Anda sepenuhnya.
Ya, saya membuatnya berfungsi untuk bash, setidaknya di linux dan mac OS.
Pertama, atur beberapa variabel atribut, dan prompt PS1 untuk meninggalkan set terminal dengan atribut baris perintah yang diinginkan, misalnya:
bold="\[$(tput bold)\]"
none="$(tput sgr0)"
export PS1="\$ $bold"
Kemudian, gunakan jebakan bash DEBUG, yang dijalankan tepat sebelum setiap perintah, untuk mengubah atribut teks untuk keluaran perintah:
trap 'echo -ne "${none}"' DEBUG