每个应用程序是否都需要支持写入 /dev/stdout 或 /dev/fd1,或者是否由操作系统透明地处理?

每个应用程序是否都需要支持写入 /dev/stdout 或 /dev/fd1,或者是否由操作系统透明地处理?

我尝试使用此命令将现有屏幕会话的缓冲区打印到标准输出,但我不知道为什么它没有打印任何内容。

screen -x lftp -X hardcopy /dev/fd/1
screen -x lftp -X hardcopy /dev/stdout

如果我改用常规文件,它就可以正常工作,那么为什么当我使用 /dev/fd/1 时它不会打印到 stdout?我对其他应用程序执行此操作,没有写入 stdout 的选项,但它可以正常工作,那么 GNU/Screen 做了什么让它无法正常工作?

答案1

在这种情况下它可能不起作用,因为命令被发送到预先存在的屏幕进程,其标准输出与您运行以连接到预先存在的屏幕进程的临时屏幕进程的标准输出不同。(免责声明:这是一个猜测!)

相关内容