tl; dr;
Use
ls --color=always > /dev/null 2>&1 && alias ls='ls --color=always' || alias ls='ls -G''
Detalhes ....
[...]
são necessários apenas para avaliar expressões condicionais (estatísticas de arquivos, comparações de sequências, comparações numéricas; consulte CONDITIONAL EXPRESSIONS
in bash(1)
). Eles também seriam necessários para isso em uma construção if ... ; then ...; else
.
Para construções relativamente simples
if CONDITION; then
EXPR1
else
EXPR2
fi
pode ser substituído por
CONDITION && EXPR1 || EXPR2
Se você não precisa de [...]
no primeiro caso, não é necessário para o segundo.
No seu caso, CONDITION
é ls --version 2>/dev/null | grep -q 'coreutils'
, que é o código de retorno de grep
. Então você pode simplesmente escrever
ls --version 2>/dev/null | grep -q 'coreutils' && alias ls='ls --color=always' || alias ls='ls -G'
BTW: seria mais fácil verificar se ls
suporta --color
diretamente:
ls --color=always > /dev/null 2>&1 && alias ls='ls --color=always' || alias ls='ls -G'