GNU grep için --color = auto seçeneği ne anlama geliyor?


14

AFAICT, ne GNU'nun kılavuz sayfası grepne de info grepne --color=autoanlama geldiğini anlatmaktan hoşlanmıyor .

Gezegendeki bu seçeneğin anlamının hemen belli olmadığı çok az insandan biri olmalıyım.

Bunu tahmin --color=auto"dir YERE arada" --color=neverve --color=always, ama bu yine de yaprakları çok fazla belirtilmemiş.

Yanıtlar:


14

Kurallar içindekilerle aynıdır ls, bu da onu belgelemek için daha iyi bir iş çıkarır man ls. Alıntı yapmak:

Dosya türlerini ayırt etmek için renk kullanımı hem varsayılan olarak hem de
--color = never ile devre dışı bırakılmıştır . --Color = auto ile ls renk kodlarını yalnızca
standart çıkış bir terminale bağlandığında yayar . LS_COLORS ortam
değişkeni ayarları değiştirebilir. Ayarlamak için dircolors komutunu kullanın.

Bu nedenle, komutun, çıktıyı bir terminale giderken değil, boruyu tüketen programın renk biçimlendirmesini iyi işlemeyebileceği bir boruya gittiğinde değil, renk formatını eklemesini sağlar.


3
Evet, bununla karşılaştığım ana zamanlar daha az içine giriyordu. Eğer kullanırsanız less -Rmaç vurgulama alabilirsiniz, ancak --color=alwaysçalışması için grep belirtmeniz gerekir .
Holloway

10

Yana grepbaşka bir seçenek kaynak koduna bakmak zorunda olabilecek bir GNU programıdır.


Dahili olarak grep testler static int color_optionbiri için 0, 1veya 2.

  • 0 asla renkli çıktı kullanmayın
  • 1 her zaman renkleri kullan
  • 2 renkleri yalnızca bir terminale yazdırırken kullanın

Eğer teslim Şimdi ne zaman --color=autosenin CLI bir argüman olarak grep, dahili olarak değişken ayarlar color_optioniçin 2.

Eğer color_optioneşittir 2 grepolup daha sonra testler STDOUT, bir terminal veya kullanıcı için bağlanmıştır ile outpit renklendirilen disabled shell environment variables. Birincisi doğruysa ve renklendirilmiş çıktıya izin verilirse, grephangi renklerin kullanılması gerektiğini değerlendirmeye devam eder ve sonunda nihayet CLIrenginize yazdırılır .


Kaynak: (grep 2.21)

grep.c line 306, 2374, 2440
colorize-posix.c line 36
man isatty 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.