登陆同一个机器,

root@1bd768a7944f:~# ps l
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0   4252  3452 -      Ss   pts/0      0:00 bash
4     0     9     0  20   0   4252  3548 -      Ss   pts/1      0:00 bash
0     0    36     1  20   0   2660   520 -      S+   pts/0      0:00 cat
0     0    37     9  20   0   5824  1152 -      R+   pts/1      0:00 ps l

上面一台执行 cat:

root@1bd768a7944f:~# ps l
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0   4252  3480 -      Ss   pts/0      0:00 bash
4     0     9     0  20   0   4252  3548 -      Ss   pts/1      0:00 bash
0     0    40     1  20   0   2660   584 -      S+   pts/0      0:00 cat
0     0    42     9  20   0   5824  1144 -      R+   pts/1      0:00 ps l

下面一台执行 date > /dev/pts/0 ,上面一台出现日期,怎么理解?

正常:

terminal -> pty master -> line discipline -> tty driver -> pty slave -> cat

日期这个??

pty slave -> tty driver -> line discipline -> pty master ?????

编译一下 script.c 来看一下 script 里面的 pty master 和 slave 都读到了什么。