是否可以将数据发送到另一个伪终端的外壳?

Joh*_*ohn 9 linux shell terminal

此图显示了伪终端的工作原理:

在此处输入图片说明

如果我打开了两个终端仿真器,我可以将字符串"Hello"从第一个终端仿真器发送到第二个终端仿真器:

echo "Hello" > /dev/pts/1
Run Code Online (Sandbox Code Playgroud)

执行此命令时,字符串"Hello"将从第二个伪终端的从端传输到第二个伪终端的主端,然后显示在第二个终端仿真器上。

现在是否可以反方向发送数据,即发送数据到shell而不是终端模拟器(或shell正在运行的进程)?

小智 -1

每个进程有3个默认的“文件描述符”

0 is stdin  (standart input)
1 is stdout (standart output)
2 is stderr (standart error output)
Run Code Online (Sandbox Code Playgroud)

您需要找到 shell 进程的 PID,然后您可以执行以下操作:

echo "test" > /proc/{your_shell_pid}/fd/1
Run Code Online (Sandbox Code Playgroud)

这将在 shell 进程的标准输出中打印测试