Comment puis-je masquer la sortie écran (printf) d'une application Shell sous Linux ?
Réponses
Trop de publicités?Il y a trois dispositifs d'E/S 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 au fichier .log, utilisez deux >
s
command >> file.log
Pour rediriger l'erreur standard vers le fichier .log, utilisez
command 2> file.log
Et d'ajouter
command 2>> file.log
Pour combiner les sorties en un seul flux et les envoyer à un seul endroit.
command > file.log 2>&1
Ceci envoie 2 (erreur standard) dans 1 (sortie standard), et envoie la sortie standard dans file.log.
Notez qu'il est également possible de rediriger l'entrée standard vers une commande qui attend l'entrée standard
command << file.txt
Pour plus de détails, consultez le Guide avancé du script Bash .
Pour Mac OS X v10.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 essayer d'utiliser ce qui suit dans un Shell :
stty flusho; command ;stty -flusho
ou si vous voulez simplement cacher 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 que Ubuntu 10.04 (Lucid Lynx) et certaines versions de Debian/Arch Linux (commentées ci-dessous - merci, hendry) n'ont pas l'extension flusho
(et je ne vois rien d'autre d'approprié dans la page de manuel). Le site echo
La configuration fonctionne sur Ubuntu de toute façon.