将标准输入拆分为文件和终端

split stdin into file and terminal

我正在寻找一种方法将用户键盘输入拆分为 terminal/shell (csh) 到一个文件中。例如,如果用户键入:

>make all
>echo bla

在键盘上,然后我希望它像往常一样显示在终端中,并写入文件中。 (即文件将包含 "make all""echo bla")

如何在 csh/bash 中执行此操作?

尝试tee logfile | yourprogram。它将输出保存到 logfile 并将其传递给 yourprogram

例如,尝试运行 tee logstdin | /bin/bash 1>logstdout 2>logstderr并输入以下命令:

make all
echo bla
exit
(input something else or just Ctrl+D)

现在,logstdin 包含:

make all
echo bla
exit

logstdout 文件是:

bla

logstderr 对我来说如下:

make: *** No rule to make target `all'.  Stop.