我正在捕获一些终端会话输出(使用“脚本”命令)进行测试。 脚本命令工作得很好,无论如何都可以获得所有内容,甚至是子shell和远程登录会话。但是,知道事情发生的时候真的很有用,所以我想在脚本输出的每一行上都有一个时间戳。不幸的是,脚本不使用stdout(出于显而易见的原因),所以我不能把它管道,比方说,ts。我也不承认任何形式的特殊' - '文件名。
我想做这样的事情:>脚本|ts > foo
脚本将打开“| ts> foo”作为文件,但写入它将通过管道
到ts,它本身会重定向到文件foo。
是否有任何shell语法或技巧来执行此操作? (更喜欢ksh,可以使用bash。)
我唯一能想到的就是使用命名管道,但这可能有缓冲 问题,对于这种用途似乎非常笨拙。
BTW我使用了script命令,因为常规stdout捕获没有获得所有终端交互。据我所知,这是唯一能做到这一点的命令。