linux - write commands from one terminal to another

前端 未结 7 1631
刺人心
刺人心 2020-12-29 09:54

I need to write commands from one terminal to another terminal.

I tried these:

echo -e \"ls\\n\" > /proc/pid/fd/0
echo -e \"ls\\n\" > /dev/pts/         


        
7条回答
  •  自闭症患者
    2020-12-29 10:04

    This is hairy. The stdin file in proc you're trying to use is a symlink to the terminal device (probably /dev/pts/something). There are two processes that have that device open: the shell (your target) and the terminal emulator (e.g. gnome-terminal), and they use it like a socket to pass data in both directions. Presumably the latter is stealing the output and displaying it, so the shell never sees it. I don't think this technique will work.

    What are you trying to accomplish? You can't run the process as a child using conventional tools like popen()? If it's a GUI terminal emulator, you could try to forge keyboard input via X events or the kernel's uinput API.

提交回复
热议问题