繁体   English   中英

在Unix上分离命令行输出(来自用户交互的处理)的方法是什么?

[英]What is the way to separate command line output (processing from user interaction) on Unix?

我正在编写一个控制台应用程序,在该应用程序中可能需要用户交互(提示输入键盘,cli参数等),但是我想将其与处理结果(以cout的方式进行处理)分开可以通过管道传输到其他应用程序)。

如果我不能仅将与用户的所有互动发送给cerr(不是所有都是错误的),该如何实现?

/dev/tty是通常的方式,但是在大多数类似Unix的操作系统上,也可以从cerr / stderr读取,因为系统通常会在stdindup()将其打开到stdoutstderr打开一次tty。

当您的stdout通过管道传输到其他位置时,在终端上显示某些内容的唯一方法(除了诸如curses和dialog之类的东西)是stderr。

如果需要用户交互,请打开/ dev / tty,它将成为该过程的控制终端。 标准错误和标准输入也可以重定向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM