Puis-je configurer bash sous Linux pour écrire une copie de tous les fichiers stdout et stderr dans un fichier normal, sans avoir à spécifier la redirection pour chaque commande?Peut stdout, stderr toujours té à un fichier régulier?
Merci, Kent
Puis-je configurer bash sous Linux pour écrire une copie de tous les fichiers stdout et stderr dans un fichier normal, sans avoir à spécifier la redirection pour chaque commande?Peut stdout, stderr toujours té à un fichier régulier?
Merci, Kent
Vous pouvez utiliser script
pour créer un journal de votre session shell
Si vous écrivez un script, je vous recommande écrire une fonction shell et rediriger sa sortie. Vous n'aurez pas à rediriger chaque commande de cette fonction alors. Je ne vois guère de sens dans les redirections en shell interactif de toute façon.
La commande exec
, si aucune commande n'est exécutée, applique ses redirections au shell en cours. Dans mes tests, cependant, cela ne semble pas très bien fonctionner pour les tuyaux. Je suggère d'utiliser un sous-shell, que vous pouvez rediriger normalement.
(
echo hello
echo hello err >&2
) 2>&1 | tee logfile.txt
Si vous avez seulement besoin d'un relevé de notes, pas un tee-shirt en continu, exec >& logfile
pourrait fonctionner.
En outre, une astuce traditionnelle consiste à utiliser un outil de connexion à distance (ssh ou telnet) redirigé vers tee pour créer un journal d'une session interactive. screen prend également en charge la journalisation.
J'ai été ravi de constater que bash 4.1 propose d'écrire l'historique des commandes dans syslog. J'espere pour ce niveau de commodite dans la journalisation des messages de sortie et d'erreur. – ktenney