用 tee 写一个日志文件

Writing a log file with tee

这是我的问题, 我使用 ksh 脚本,我尝试使用函数 tee 和 :

创建一个日志文件

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

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 重定向写入 before tee.

结论

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

Hello
World
!

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

rm -f "tee.txt"

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