2015-10-18 19 views
1

我正在寻找一种将用户键盘输入拆分为文件和终端/外壳(csh)的方法。例如,如果用户键入:将标准输入拆分为文件和终端

>make all 
>echo bla 

在键盘上,那么我希望这是在终端照常示出,并且也将被写入到文件中。 (即文件将包含“make all”“echo bla”)

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

+0

使用[tee](https://en.wikipedia.org/wiki/Tee_%28command%29)? – Gassa

+0

@加萨:我并不反对,但具体怎么做?即那会是'csh avidane

回答

0

尝试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. 
+0

请注意,我正在寻找拆分输入(STDIN),而不是输出。 – avidane

+0

@avidane,就我所见,它的确如此。我用一个例子扩大了答案。 – Gassa