当我在说cat -
中运行/dev/pts/2
并尝试使用echo foo > /dev/pts/2
或echo foo > /proc/(pid of cat)/fd/0
从另一个tty写入其输入时,它只会在pts / 2中打印foo,cat不重复它。为什么?
如何从另一个tty向cat发送输入,所以它也重复它?
答案 0 :(得分:1)
每个终端都有一个文件,在/ dev / pts /.
$ ps
确定您所在的终端。示例:我在3号航站楼
PID TTY TIME CMD
1477 pts / 3 00:00:00 ps
26511 pts / 3 00:00:01 bash
不只是将输出重定向到该终端。
cat foo>的/ dev / PTS / 3
在第二个终端上制作先进先出管道,你要在上显示文本
mkfifo --mode=600 /tmp/pipe
将命令重定向到第一个终端上的该管道
cat foo > /tmp/pipe
答案 1 :(得分:0)
我认为这里有一个根本的误解:你不能将内容注入另一个TTY的输入流(除非你拥有主人)。
但是,您可以呼叫cat /dev/pts/0
从另一个TTY的输入流中读取,但请注意,您将与已经存在的任何进程进行战斗。