3 votes

La redirection ne fonctionne pas

Je veux mettre la sortie de mon programme dans un fichier. J'ai saisi les données suivantes :

./prog > log 2>&1

Mais il n'y a rien dans le fichier "log" . J'utilise le Ubuntu 11.10 et le Shell par défaut est bash.

Quelqu'un connaît-il la cause de ce problème et sait-il comment le déboguer ?

7voto

jamting Points 893
script -c "/path/prog" /path/log.txt

Parfois la redirection de Shell ne fonctionne pas (spécifiquement - quand un Shell spawns un autre Shell, je pense :). Ci-dessus est la solution générique qui saisit simplement toute la sortie Shell et la place dans le fichier. Dans votre cas, cela devrait fonctionner également, puisque vous attendez la sortie sur stdout/stderr.

4voto

Aquarius Power Points 3569

Ça a marché ici, quand le ./prog 2>&1 >log.txt seul, ne fonctionnerait pas correctement :

./prog 2>&1 |cat >log.txt

0voto

Mon Points 101

Ce qui a marché pour moi :

./prog >> log 2>> log

>> log pour rediriger stdout dans le fichier

2>> log pour rediriger stderr vers le fichier

d'autres utilisent le raccourci &>> pour les deux stdout y stderr mais il n'est pas accepté par mon mac et mon ubuntu :(

extra : > écrase, tandis que >> ajoute

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X