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.