我在unix系统中打开了2个终端。 在一个终端上我运行了一个接受raw_input的python程序,我想从另一个没有运行这个python程序的终端提供这个raw_input。
我尝试过类似的事情:
echo 3>的/ dev / PTS / 172
但是这只是在终端上打印数字3但是没有真正做到从键盘上给出“3”和ENTER键的功能
终端1是/ dev / pts / 252,运行python程序的终端是/ dev / pts / 172
答案 0 :(得分:1)
如果想要远程提供程序,一个相当流行的解决方案不是使用stdin
进行输入,而是打开pipe
,让程序监听管道。然后,您可以在另一个程序中打开管道,并将数据发送给它。如果您使用named pipes
,您甚至可以echo
到管道。
将数据发送到另一个终端的stdin
(并且因此发送到raw_input)显然是一个危险的想法,因为这将允许在其他人的终端中执行命令。
导向/proc/script_PID/fd/0
将无效 - 这与/ dev / pts /中的相同设备相关联。