我试图记录脚本执行的某些部分。日志应显示在第二个tty,并写入日志文件。
我可以用一个简单的方法来做到这一点:
echo "Hello log" > /dev/tty2
echo "Hello log" > /var/log/my_logs
但是非常不舒服。我还可以将echo重定向到特定的地方:
exec 1<>/var/log/my_logs
exec 2>&1
但是如何将STDOUT重定向到/ dev / tty2和/ var / log / my_logs?
答案 0 :(得分:8)
使用tee
。
echo "Hello log" | tee /dev/tty2 /var/log/my_logs > /dev/null
(最后的重定向是为了防止输出出现在标准输出中。你也可以使用echo "Hello log" | tee /dev/tty2 > /var/log/my_logs
;两者之间没有真正的区别。tee
只是将标准输入写入两者标准输出和一个或多个命名文件。)
要将所有标准输出重定向到该对,请使用exec
进行替换。
exec > >(tee /dev/tty2 /var/log/my_logs)