用tee写一个日志文件

时间:2016-07-28 21:23:16

标签: unix echo ksh tee

有我的问题, 我使用ksh脚本,我尝试使用函数tee创建一个日志文件,并使用:

  • 将在屏幕上显示的信息

  • 不会在屏幕上显示的信息。

所以我使用tee处理我脚本中的所有echo,我想将特定回显的输出重定向到日志文件中的

foo(){
        echo Hello               # screen + log file
        echo World >> "tee.txt"  # only log file
        echo !                   # screen + log file      
}             
rm -f "tee.txt"
foo | tee -a "tee.txt" 

屏幕输出

Hello
!

没关系。

日志文件

但在日志文件

World
Hello
!

echo重定向在 tee之前写了

结论

那么,是否有类似echo的东西只会存储输出而不会显示到屏幕上? 要使用tee在日志文件中获取该输出?

Hello
World
!

1 个答案:

答案 0 :(得分:0)

试试这个。它在ksh上对我有用。

rm -f "tee.txt"

foo()
{
    echo Hello
    stty -echo
    echo World >> "tee.txt"
    stty echo
    echo !
}
foo | tee -a "tee.txt"