zeb*_*man 5 c++ bash shell redirect cout
我正在运行一个程序并重定向cout到一个outfile,如下所示:
./program < infile.in > outfile.o
Run Code Online (Sandbox Code Playgroud)
我希望能够从命令行读取选项('-h'或'--help')并向终端输出帮助消息.有没有办法可以做到这一点,但仍然有cout其他程序的常规转到outfile?
将cout要使用这样的事情合适的对象?
mea*_*gar 15
您应该使用cerr将帮助消息输出到STDERR,这不包含在重定向到outfile.o中.
鉴于./program < infile.in > outfile.o:
cout << "This writes to STDOUT, and gets redirected to outfile.";
cerr << "This doesn't get redirected, and displays on screen.";
Run Code Online (Sandbox Code Playgroud)
如果,稍后,您想要重定向STDOUT和STDERR,您可以这样做
./program < infile.in &> outfile.o
Run Code Online (Sandbox Code Playgroud)
如果要仅重定向STDERR,但允许显示STDOUT,请使用
./program < infile.in 2> outfile.o
Run Code Online (Sandbox Code Playgroud)
Bash重定向比大多数人意识到的更复杂,并且除了最简单的形式(">")之外的所有内容都会被忽略.