É comum que a aplicação unix que suporta a saída de cores (como grep
e ls
) tenha uma opção de linha de comando, bem como, possivelmente, detecção automática.
olhando para man ls
, vemos
--color[=WHEN]
colorize the output. WHEN defaults to 'always' or can be 'never' or 'auto'. More info below
Portanto, por padrão, o ls sempre usará cores, observe a opção auto
.
man grep
mostra semelhante
--color[=WHEN], --colour[=WHEN]
<snipped> WHEN is never, always, or auto.
Se a opção auto
estiver habilitada (o que para seu aplicativo pode ser o padrão), algo como a seguinte resposta (sugerida por Gilles) pode ser o que você está procurando link
Isto é, se a sua saída é um terminal e suporta cor, e o usuário não a desativou, você deve usar cores. É claro que o usuário que usa always
ou never
pula essa verificação.
Acho útil que os programas tenham --color=always
, mesmo que suportem a detecção automática, pois isso pode forçar o uso da cor "quando eu souber melhor" (digamos que meu destino não é um terminal, mas sei que ele é compatível cor').
Em alguns sistemas, tenho um alias para ls
to ls --color=always
.