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 进程的标准输出中打印测试