Solution 1 :
Vous pouvez rediriger la sortie de n'importe quel programme afin qu'elle ne soit pas vue.
$ program > /dev/null
Cela redirigera la sortie standard - vous verrez toujours toutes les erreurs
$ program &> /dev/null
Cela redirigera toutes les sorties, y compris les erreurs.
Solution 2 :
Trois périphériques d'E/S sont disponibles sur la ligne de commande.
standard input - 0
standard output - 1
standard error - 2
Pour rediriger la sortie standard (la sortie par défaut) vers un fichier (et écraser le fichier), utilisez
command > file.log
Pour ajouter à file.log, utilisez deux >
s
command >> file.log
Pour rediriger l'erreur standard vers le fichier.log, utilisez
command 2> file.log
Et pour ajouter
command 2>> file.log
Pour combiner les sorties en un seul flux et les envoyer toutes au même endroit
command > file.log 2>&1
Cela envoie 2 (erreur standard) en 1 (sortie standard) et envoie la sortie standard à file.log
Notez qu'il est également possible de rediriger l'entrée standard vers une commande qui attend une entrée standard
command << file.txt
Pour plus de détails, consultez le Guide de script avancé pour Bash.
Solution 3 :
Masquer la sortie standard :
./command >/dev/null
Masquer la sortie standard et l'erreur standard :
./command >/dev/null 2>&1
Masquez la sortie standard et l'erreur standard et relâchez le terminal (exécutez la commande en arrière-plan) :
./command >/dev/null 2>&1 &
Solution 4 :
Si vous souhaitez simplement masquer la sortie (et non l'enregistrer dans un fichier), vous pouvez utiliser :
Modifié :
$ commande &> /dev/null
Solution 5 :
Pour Mac OS X v10.6 (léopard des neiges) :
Si vous avez besoin de masquer la sortie sans que le programme le sache en vérifiant le descripteur de fichier de sortie/d'erreur, vous pouvez essayer d'utiliser ce qui suit dans un shell :
stty flusho; command ;stty -flusho
ou si vous souhaitez simplement masquer l'entrée du terminal en passant :
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 qu'Ubuntu 10.04 (Lucid Lynx) et certains Debian/Arch Linux (commentés ci-dessous - merci, hendry) n'ont pas le flusho
paramètre (et je ne vois rien d'autre de approprié dans la page de manuel). Le echo
le paramètre fonctionne de toute façon sur Ubuntu.