J'ai un script qui sera exécuté interactivement par des utilisateurs non-techniques. Le script écrit les mises à jour d'état sur STDOUT afin que l'utilisateur puisse être sûr que le script s'exécute correctement.Comment puis-je obtenir à la fois STDOUT et STDERR pour accéder au terminal et à un fichier journal?
Je souhaite que STDOUT et STDERR soient redirigés vers le terminal (pour que l'utilisateur puisse voir que le script fonctionne et voir s'il y a eu un problème). Je veux également que les deux flux soient redirigés vers un fichier journal.
J'ai vu un tas de solutions sur le net. Certains ne fonctionnent pas et d'autres sont horriblement compliqués. J'ai développé une solution réalisable (que je vais entrer comme réponse), mais c'est kludgy.
La solution idéale serait une ligne de code unique qui pourrait être incorporée au début de tout script qui envoie les deux flux au terminal et à un fichier journal.
EDIT: Rediriger STDERR à STDOUT et la tuyauterie du résultat tee travaux, mais cela dépend des utilisateurs de rediriger et se souvenir redirigez la sortie. Je veux que la journalisation soit infaillible et automatique (c'est pourquoi je voudrais pouvoir incorporer la solution dans le script lui-même.)
Pour les autres lecteurs: question similaire: http://stackoverflow.com/questions/692000/how-do-i-write-stderr-to-a-file-while-using-tee-with-a-pipe – pevik