Comment puis-je écrire dans un fichier et imprimer simultanément sur un terminal sous Unix?

J’ai une petite fonction bash pour consigner mes sorties Macports dans un fichier (puisque les installations crachent souvent des petites informations faciles à perdre dans le bruit des terminaux), alors je ne fais que chatter le fichier vers le terminal:

function porti { command sudo port install $@ >> $1.log 2>&1; cat $1.log } 

Est-il possible de faire cela simultanément?

BTW je passe $ @ pour installer mais seulement 1 $ pour le nom du fichier afin que je puisse faire quelque chose comme:

 porti git-gore +bash_completion 

et ne récupère que le fichier git-core.log, mais quelqu’un d’autre préférera peut-être inclure des variantes dans le nom du fichier …

La solution habituelle consiste à utiliser tee (1) :

 sudo port install $@ 2>&1 | tee -a $1.log 

devrait faire ce que tu veux