GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je masquer la sortie d'une application shell sous Linux ?

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.


Linux
  1. Comment trouver l'application pour un type MIME sous Linux ?

  2. Comment changer le shell par défaut sous Linux

  3. Comment puis-je randomiser les lignes d'un fichier à l'aide d'outils standard sur Red Hat Linux ?

  4. Comment puis-je obtenir l'état du clavier sous Linux?

  5. Comment puis-je faire une division avec des variables dans un shell Linux ?

Comment installer Fish, le shell interactif convivial, sous Linux

Comment changer le shell par défaut dans le système Linux

Python - Superviseur comment enregistrer la sortie standard -

Comment puis-je modifier le $PATH sous Linux ?

Comment limiter l'utilisation de la mémoire par application sous Linux ?

Masquer la sortie d'une commande shell uniquement en cas de succès ?