我试图记录脚本执行的某些部分。日志应该显示在第二个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呢?
使用 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)
tee
命令不就可以了吗?echo "Hello log" > /dev/tty2 | tee /var/log/my_logs
- fedorquitee
无法看到任何内容。 - glenn jackman