Comment masquer la sortie d'écran (printf) d'une application shell sous Linux?
Comment masquer la sortie d'écran (printf) d'une application shell sous Linux?
Réponses:
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 des erreurs
$ program &> /dev/null
Cela redirigera toutes les sorties, y compris les erreurs.
wget
vous pouvez utiliser les -q
options pour le rendre silencieux.
Trois périphériques IO sont 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, utilisez
command 2> file.log
et annexer
command 2>> file.log
Pour combiner les sorties dans un flux et les envoyer au même endroit
command > file.log 2>&1
Cela envoie 2 (stderr) dans 1 (stdout) et envoie stdout à file.log
Notez qu'il est également possible de rediriger standard dans une commande qui attend stdin
command << file.txt
EDIT
Pour plus de détails, consultez le Advanced Bash Scripting Guide
command > file.log 2>&1
marche?
> file
et la seconde 2>&1
. Le premier redirige la norme vers un fichier. Le second prend le 2ème descripteur de fichier et le redirige vers le premier. Vous pouvez faire l'inverse, rediriger la sortie standard vers l'erreur standard à l'aide de >&2
, puis rediriger l'erreur standard vers un fichier avec 2> file
.
Si vous souhaitez simplement masquer la sortie (et non l'enregistrer dans un fichier), vous pouvez utiliser:
Édité:
$ commande &> / dev / null
Pour Mac OS X (10.6 "Snow Leopard"):
Si vous devez masquer la sortie sans que le programme le sache en vérifiant le descripteur de fichier de sortie / d'erreur, vous pouvez utiliser les éléments suivants dans un shell:
stty flusho; command ;stty -flusho
ou si vous voulez juste cacher l'entrée du terminal à propos:
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’Ubunutu (10.04 "Lucid") et des "Debian / Arch" (commentés ci-dessous - tnx hendry) n’ont pas le flusho
paramètre (et je ne vois rien d’autre dans la page de manuel). . Le echo
réglage fonctionne de toute façon sur Ubuntu.