bash, savoir si stdout fait référence à un terminal
2012-10-12
Pour savoir si la sortie standard pointe sur un terminal, on peut utiliser l’opérateur “-t” en bash.
diffutil=diff
if [ -t 1 ]; then
if which colordiff > /dev/null; then
diffutil=colordiff
fi
fi
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