【发布时间】:2020-01-11 22:08:28
【问题描述】:
stdout 和 stderr 在运行 tcsh 和 ksh 时给出不同的结果。
据我了解,ksh 中的行为是正确的,而在 tcsh 中却不是。
我的目标是了解cout 和cerr 之间的区别,所以我写了一个小c++ 程序:
std::cout<<"this goes in standard output\n";
std::cerr<<"This goes in error output\n";
并生成out作为它的可执行文件。
我制作了两个 shell 脚本,一个用于 ksh,另一个用于 tcsh,如下所示:
:~/CPP/TEST [124]$ cat test
#!/bin/tcsh
out 2>>error.log
:~/CPP/TEST [125]$ cat test1
#!/usr/bin/ksh
out 2>>error.log
:~/CPP/TEST [129]$ ./test
This goes in error output //WRONG
:~/CPP/TEST [130]$ cat error.log
this goes in standard output //WRONG
:~/CPP/TEST [131]$ ./test1
this goes in standard output //OK
:~/CPP/TEST [132]$ cat error.log
this goes in standard output
This goes in error output //OK
stderr、stdout 的行为在 shell 之间不应该是相同的吗?
【问题讨论】:
标签: c++ stdout ksh stderr tcsh