Pour savoir si la sortie standard pointe sur un terminal, on peut utiliser l'opérateur "-t" en bash.
Dans le cas présenté, on utilisera colordiff pour le rendu sinon diff.
En effet, un pipe avec less (sans l'option -R ou la variable LESS définie à -R) afficherait les caractères d’échappement servant à la colorisation des lignes
Cf une page intéressante : ici