1788 votes

Séparer la sortie erreur standard & #160;: si cette case est cochée, les messages de sortie et d'erreur sont affichés séparément.

Pour rediriger la sortie standard dans un bash, l'écrasement d'un fichier

cmd > file.txt

Pour rediriger la sortie standard dans un bash, l'ajout de fichier

cmd >> file.txt

Pour rediriger les deux stdout et stderr, l'écrasement

cmd &> file.txt

Comment puis-je rediriger les deux stdout et stderr l'ajout de fichier? cmd &>> file.txt ne fonctionne pas pour moi

2310voto

Alex Martelli Points 330805
cmd >>file.txt 2>&1

417voto

TheBonsai Points 3112

Il y a deux façons de le faire, selon votre Bash version.

Le classique et portable (Bash pré-4):

cmd >> outfile 2>&1

Un non-compatibles manière, en commençant par Bash 4 est

cmd &>> outfile

analogique - &> outfile)

Pour de bon style de codage, vous devriez

  • décider si la portabilité est un sujet de préoccupation (puis utilisez façon classique)
  • décider si la portabilité même pour Bash pré-4 est un sujet de préoccupation (puis utilisez façon classique)
  • n'importe quelle syntaxe utiliser, pas de changement, dans le même script (confusion!)

Si votre script commence déjà avec #!/bin/sh (peu importe si elles sont destinées ou non), puis le Bash 4 solution, et en général toute Bash-code spécifique, n'est pas la voie à suivre.

Rappelez-vous aussi que Bash 4 &>> est juste plus court de la syntaxe, il n'introduit pas de nouvelle fonctionnalité ou quelque chose comme ça.

La syntaxe est la suivante (à côté de la redirection de la syntaxe) est décrit ici: http://bash-hackers.org/wiki/doku.php/syntax/redirection#appending_redirected_output_and_error_output

105voto

Aaron R. Points 538

En Bash, vous pouvez également spécifier explicitement vos redirections vers des fichiers:

cmd >log.out 2>log.out

Cela permet de spécifier les différents fichiers, si vous le souhaitez.

cmd >log.out 2>log_error.out

Ajoutant serait:

cmd >>log.out 2>>log_error.out

69voto

A.B Points 647

En Bash 4 (ainsi que ZSH 4.3.11):

cmd &>>outfile

tout juste sorti de la boîte

29voto

Quintus.Zhou Points 50

Essayez ceci

You_command 2>&1 1>output.log

Votre utilisation de &>x.fichier fonctionne dans bash4. désolé : (

Voici quelques conseils supplémentaires.

0, 1, 2...9 sont des descripteurs de fichiers en bash. 0 représente pour l'entrée standard, 1 signifie stdout, 2 supports pour stderror. 3~9 est libre pour toute autre usage temporaire.

Tout descripteur de fichier peuvent être redirigés vers d'autres descripteur de fichier ou de fichiers en utilisant l'opérateur > >ou > >(ajouter).

Utilisation: <file_descriptor> > <nom de fichier | &file_descriptor>

Veuillez vous reporter à http://www.tldp.org/LDP/abs/html/io-redirection.html

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