Je ne vois pas comment utiliser l'opérateur -t de la commande test pour déterminer si mon script va "envoyer" ses résultats (son stdout) sur un tty ou non. Il faut lui indiquer le numéro de descripteur qui nous intéresse (0 = stdin, 1= stdout, 2 = stderr, etc.) $ if [ -t 1 ]; then OUT=terminal; else OUT=redirected; fi $ echo $OUT terminal $ if [ -t 1 ]; then OUT=terminal; else OUT=redirected; fi > /dev/null $ echo $OUT redirected $ if [ -t 2 ]; then OUT=terminal; else OUT=redirected; fi $ echo $OUT terminal $ if [ -t 2 ]; then OUT=terminal; else OUT=redirected; fi 2> /dev/null $ echo $OUT redirected $ if [ -t 0 ]; then OUT=terminal; else OUT=redirected; fi $ echo $OUT terminal $ if [ -t 0 ]; then OUT=terminal; else OUT=redirected; fi < /dev/zero $ echo $OUT redirected