http://www.webdesignerdepot.com/rss.htm
J’ai le même problème. Cette commande:
./somescript.sh> ../log/scriptlog.log
nécessite la sortie d’une commande aller à std out. mais à l’intérieur du script
commande | mailx -s “Subject” [email protected]
Ce que je voudrais faire, c’est quelque chose comme:
commande | tee> / dev / stdout | mailx -s “Subject” [email protected]
Où la sortie de la commande va à stdout (pour être redirigé dans le fichier ..log / scriptlog.log)
et aussi dans stdin pour la commande mailx.
Un moyen de faire ça?
tee
envoie déjà à stdout.
... | tee -a log/scriptlog.log | ...
exec 3>&1 command | tee /dev/fd/3 | mailx ...
ou, en utilisant la substitution de processus:
command | tee >(mailx ...)
Je vais essayer la substitution de processus. Pour clarifier, j’ai un script shell cron’d. L’entrée cron est similaire à: /usr/script/myscript.sh> /usr/log/myscript.log
à l’intérieur du script est une ligne similaire à: command | destinataire mailx -s “sujet”
Étant donné que stdout de ‘command’ est transféré dans la commande mailx, il apparaît dans le fichier journal ‘myscript.log’, mais je le souhaite.
J’ai essayé de le capturer dans une variable, mais les sauts de ligne semblent perdus. Je pourrais utiliser un fichier temporaire, mais j’espérais quelque chose de plus élégant.