192 votes

Comment le silence de sortie dans un script bash?

J'ai un programme de sorties stdout et voudrais le silence que la sortie dans un script bash, tandis que la tuyauterie à un fichier.

Par exemple, l'exécution du programme de sortie:

% myprogram
% WELCOME TO MY PROGRAM
% Done.

Je veux que le script suivant pour ne pas afficher quoi que ce soit à la ligne de commande:

#!/bin/bash
myprogram > sample.s

232voto

John Kugelman Points 108754

Si il sort sur la sortie stderr ainsi vous aurez envie de silence. Vous pouvez le faire en redirigeant le descripteur de fichier 2:

# Send stdout to sample.s, stderr to sample.err
myprogram > sample.s 2> sample.err

# Send both stdout and stderr to sample.s
myprogram &> sample.s      # New bash syntax
myprogram > sample.s 2>&1  # Older sh syntax

# Log output, hide errors.
myprogram > sample.s 2> /dev/null

97voto

Debugger Points 1386

2>&1

avec cela, vous serez rediriger la sortie stderr (qui est le descripteur 2) pour le descripteur de fichier 1, qui est la sortie standard (stdout)

myprogram > sample.s

Maintenant, lorsque vous effectuez ce que vous êtes rediriger la sortie standard vers le fichier de l'échantillon.s

myprogram > sample.s 2>&1

En combinant les deux commandes de résultat en redirigeant les deux stderr et stdout de l'échantillon.s

myprogram 2>&1 /dev/null

Si vous voulez complètement silencieux de votre application

55voto

Eduardo Cuomo Points 1433

Essayez avec:

myprogram &>-

12voto

Matt Points 695

Si vous voulez STDOUT et STDERR fois [tout], puis la façon la plus simple est:

#!/bin/bash
myprogram >& sample.s

alors lancez - ./script, et vous n'aurez pas de sortie de votre terminal. :)

l' ">&" signifie STDERR et STDOUT. l' & fonctionne également de la même façon avec un tuyau: ./script |& sed qui va envoyer le tout à sed

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X