Оскільки grepце програма GNU, інший варіант може переглядати вихідний код.
Внутрішньо grep тестує static int color_optionдля або 0, 1або 2.
0 ніколи не використовуйте кольоровий вихід
1 завжди використовуйте кольори
2 використовуйте кольори лише під час друку на терміналі
Тепер , коли ви передаєте --color=autoв Grep в якості аргументу на вашому CLI, він внутрішньо встановлює змінну color_optionв 2.
Якщо color_optionдорівнює, 2 grepто додатково перевіряється, чи STDOUTзв’язаний він з терміналом або користувач відключив колоризований вихід через shell environment variables. Якщо попередній істинний і кольоровий вихід дозволений, grepто продовжуємо оцінювати, які кольори слід використовувати, і врешті-решт виводить друк на ваш CLIколір.
джерело: (греп 2.21)
grep.c line 306, 2374, 2440
colorize-posix.c line 36
man isatty
less -Rви можете отримати підсвічування матчу, але вам потрібно вказати,--color=alwaysщоб він не працював.