如何将命令行输出重定向到文件,但仍然在命令行中显示它们?

时间:2014-04-04 14:49:36

标签: linux shell tcsh

tcsh我想将命令行输出重定向到文件,但我仍想在命令行中显示它们。

有点搜索

./MyCommand.sh 2>&1 | tee /tmp/Output.txt

应该做的工作。但是我得到了一个错误:

Ambiguous output redirect

3 个答案:

答案 0 :(得分:2)

使用2>&1组合stderr和stdout仅适用于bashsh。它不适用于cshtcsh。在Redirect stdout to stderr in tcsh建议进行解决。

答案 1 :(得分:0)

bash代替2>&1我使用|& 不知道这对tcsh有何影响,但这个问题目前尚未被标记,希望这有助于其他人。

根据此redirect stderr to stdout in c shell,您无法在csh tcsh扩展哪些可能相关的

中执行此操作

答案 2 :(得分:0)

如果你只想重新定位stdout,或者stdout和stderr,那么问题就不清楚了。

使用|会将stdout重定向到tee(将其输出到文件和终端),使stderr保持不变(因此它只会转到终端):

./MyCommand.sh | tee /tmp/Output.txt

使用|&将"合并" stdout和stderr,tee将重定向到文件和终端:

./MyCommand.sh |& tee /tmp/Output.txt