Dapatkah saya mengkonfigurasi terminal untuk menampilkan output stderr dalam warna berbeda

11

Apakah mungkin untuk mengkonfigurasi terminal di OS X untuk menampilkan stderroutput secara otomatis dalam warna yang berbeda dari stdoutoutput dari suatu proses?

Atau ini hanya mungkin jika proses mengeluarkan keluaran berwarna?

RobV
sumber
Sayangnya, pada 2019 jawaban yang benar adalah ini tidak mungkin lagi . Keduanya hilitedan stderredtidak dirawat dan rusak dan saya masih mencari solusi.
sorin
@ Atau Aku baru saja menginstal hilitemelalui Homebrew, masih berfungsi seperti yang diharapkan (akan terkejut jika tidak benar-benar, ia menggunakan fungsionalitas yang sangat dasar untuk menyelesaikan tugasnya).
nohillside
@sorin stderredmungkin tidak berfungsi lagi karena tampaknya mengubah lokasi dari perpustakaan dinamis yang diambil, yang dapat dicegah dengan SIP hari ini
nohillside

Jawaban:

9

Tidak ada solusi langsung, tetapi setidaknya ada beberapa solusi yang tersedia untuk melakukan ini.

  • Anda dapat menginstal hilite dengan membuat file C tunggal ( hilite.cdalam hal ini) atau dengan menggunakan brew install hilite(dengan homebrew diinstal pada sistem). Gunakan sebagai hilite <command>.

  • Anda dapat menggunakan perintah dari jawaban ini di serverfault (ganti commanddengan nama skrip / perintah Anda) untuk membuat stderr muncul dengan warna merah (untuk warna lain, lihat daftar urutan escape ANSI dan ubah 31m pada perintah di bawah ini sesuai dengan itu):

    command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done)
  • Anda dapat menggunakan stderred untuk mewarnai stderr dengan warna merah.

MK
sumber
3

Anda mungkin ingin melihat stderred yang memungkinkan output Stderr berwarna merah.

Ini kompatibel dengan OSX dan ada manual untuk menginstalnya di OSX.

Matthieu Riegler
sumber