A maioria dos casos (se não todos) em que um comando * nix imprime uma saída colorida sem que o usuário solicite especificamente uma opção envolve aliases. De fato, muitas distribuições do Linux incluem um alias para ls e grep especificando cores no global /etc/bash.bashrc .
Estes são do meu Linux Mint Debian Edition:
$ grep alias /etc/bash.bashrc
alias ls='ls --color=auto'
alias grep='grep --colour=auto'
Portanto, se o seu programa estiver chamando esses comandos por meio do BASH, você estará executando ls --color=auto em vez de ls .
Você pode ignorar aliases no BASH (talvez outros shells também, mas eu não tentei) pelos seguintes métodos (retirados de aqui ):
-
o nome completo do caminho do comando:
/bin/ls -
substituição de comando:
$(which ls) -
o comando incorporado:
command ls -
aspas duplas:
"ls" -
aspas simples:
'ls' -
um caractere de barra invertida:
\ls
Se você usar um desses métodos em seu software, não precisará se preocupar com sequências de escape.