Comment cacher la sortie d'une application shell sous Linux?

Comment cacher la sortie d'écran (printf) d'une application shell sous Linux?

Vous pouvez rediriger la sortie de n'importe quel programme afin qu'il ne soit pas vu.

$ program > /dev/null 

Cela redirige la sortie standard – vous verrez toujours des erreurs

 $ program &> /dev/null 

Cela redirigera toutes les sorties, y compris les erreurs.

Il existe trois périphériques IO disponibles sur la ligne de commande.

  standard in - 0 standard out - 1 standard error - 2 

Pour rediriger la sortie standard (sortie par défaut) vers un fichier (et écraser le fichier), utilisez

  command > file.log 

Pour ajouter à file.log, utilisez 2> s

  command >> file.log 

Pour rediriger l'erreur standard vers le fichier.log, utiliser

  command 2> file.log 

Et à ajouter

  command 2>> file.log 

Pour combiner les sorties en un flux et les envoyer tous à un seul endroit

  command > file.log 2>&1 

Cela envoie 2 (stderr) en 1 (stdout) et envoie stdout à file.log

Notez qu'il est également possible de rediriger le standard dans une commande qui attend Stdin

  command << file.txt 

MODIFIER
Pour plus de détails, consultez le Guide de script avancé de Bash

Masquer la sortie standard

 ./command >/dev/null 

Masquer les sorties standard et d'erreur

 ./command >/dev/null 2>&1 

Masquer les sorties standard et d'erreur et relâcher le terminal (exécutez la commande en arrière-plan)

 ./command >/dev/null 2>&1 & 

Si vous souhaitez simplement cacher la sortie (et ne pas l'enregistrer dans un fichier), vous pouvez utiliser:

Édité:

$ Command &> / dev / null

Pour Mac OS X (10.6 "Snow Leopard"):

Si vous devez cacher la sortie sans laisser le programme le savoir en vérifiant le descripteur de fichier de sortie / erreur, vous pouvez essayer d'utiliser ce qui suit dans un shell:

 stty flusho; command ;stty -flusho 

Ou si vous souhaitez simplement cacher l'entrée du terminal par la manière suivante:

 stty -echo; command ;stty echo 

Voir la page de manuel stty (1) pour plus d'informations

Pour Linux, tout ce que je sais, c'est que Ubunutu (10.04 "Lucid") et certains "Debian / Arch" (commentés ci-dessous – tnx hendry) n'ont pas le paramètre flusho (et je ne vois rien d'autre approprié dans la page man ). Le réglage de l' echo fonctionne toujours sur Ubuntu.