我正在寻找一种将用户键盘输入拆分为文件和终端/外壳(csh)的方法。例如,如果用户键入:将标准输入拆分为文件和终端
>make all
>echo bla
在键盘上,那么我希望这是在终端照常示出,并且也将被写入到文件中。 (即文件将包含“make all”“echo bla”)
如何在csh/bash中执行此操作?
我正在寻找一种将用户键盘输入拆分为文件和终端/外壳(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.
使用[tee](https://en.wikipedia.org/wiki/Tee_%28command%29)? – Gassa
@加萨:我并不反对,但具体怎么做?即那会是'csh
avidane