GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Suatu Program Memutuskan Apakah Memiliki Output Berwarna atau Tidak?

Ketika saya menjalankan perintah dari terminal yang mencetak keluaran berwarna (seperti ls atau gcc ), keluaran berwarna dicetak. Dari pemahaman saya, proses ini sebenarnya mengeluarkan kode escape ANSI, dan terminal memformat warnanya.

Namun, jika saya menjalankan perintah yang sama dengan proses lain (misalnya aplikasi C kustom) dan mengarahkan output ke output aplikasi itu sendiri, warna ini tidak akan bertahan.

Bagaimana sebuah program memutuskan apakah akan menampilkan teks dengan format warna atau tidak? Apakah ada variabel lingkungan?

Jawaban yang Diterima:

Sebagian besar program seperti itu hanya mengeluarkan kode warna ke terminal secara default; mereka memeriksa untuk melihat apakah keluaran mereka adalah TTY, menggunakan isatty(3) . Biasanya ada opsi untuk mengganti perilaku ini:nonaktifkan warna di semua kasus, atau aktifkan warna di semua kasus. Untuk GNU grep misalnya, --color=never menonaktifkan warna dan --color=always memungkinkan mereka.

Di shell Anda dapat melakukan tes yang sama menggunakan -t test operator:[ -t 1 ] akan berhasil hanya jika keluaran standar adalah terminal.


Linux
  1. Bagaimana Cara Mengarahkan Output Program Ke File Zip??

  2. Bagaimana Cara Mengirim Keystrokes (f5) Dari Terminal Ke Program Gui?

  3. Bagaimana cara menampilkan teks berwarna ke terminal Linux?

  1. Docker bash prompt tidak menampilkan keluaran warna

  2. Cara mengarahkan output program sebagai inputnya

  3. Bagaimana cara menyalin output terminal?

  1. di konsol linux, cara TIDAK membungkus keluaran

  2. GPG tidak memiliki cukup entropi

  3. Cara menonaktifkan PERINGATAN:apt tidak memiliki antarmuka CLI yang stabil...