Vì greplà một chương trình GNU nên một tùy chọn khác có thể có một cái nhìn về mã nguồn.
Grep nội bộ kiểm tra static int color_optioncho một trong hai 0, 1hoặc 2.
0 không bao giờ sử dụng đầu ra màu
1 luôn luôn sử dụng màu sắc
2 Chỉ sử dụng màu sắc khi in tới thiết bị đầu cuối
Bây giờ khi bạn bàn giao --color=autocho grep làm đối số trên CLI của mình, nó sẽ đặt biến bên trong color_optionthành 2.
Nếu color_optionbằng 2 grepthì kiểm tra thêm xem có STDOUTđược liên kết với một thiết bị đầu cuối hoặc người dùng bị vô hiệu hóa kết xuất màu qua shell environment variables. Nếu cái trước là đúng và đầu ra màu được cho phép, grepthì tiếp tục với việc đánh giá màu nào sẽ được sử dụng và cuối cùng cuối cùng sẽ in ra CLImàu của bạn .
nguồn: (grep 2.21)
grep.c line 306, 2374, 2440
colorize-posix.c line 36
man isatty
less -Rbạn có thể làm nổi bật trận đấu nhưng bạn cần chỉ định--color=alwaysgrep để nó hoạt động.