如何在不同的终端上为linux中的终端窗口上运行的python程序提供raw_input,所有这些都运行在同一个UNIX

时间:2015-08-03 23:25:55

标签: python linux unix terminal

我在unix系统中打开了2个终端。 在一个终端上我运行了一个接受raw_input的python程序,我想从另一个没有运行这个python程序的终端提供这个raw_input。

我尝试过类似的事情:

echo 3>的/ dev / PTS / 172

但是这只是在终端上打印数字3但是没有真正做到从键盘上给出“3”和ENTER键的功能

终端1是/ dev / pts / 252,运行python程序的终端是/ dev / pts / 172

1 个答案:

答案 0 :(得分:1)

如果想要远程提供程序,一个相当流行的解决方案不是使用stdin进行输入,而是打开pipe,让程序监听管道。然后,您可以在另一个程序中打开管道,并将数据发送给它。如果您使用named pipes,您甚至可以echo到管道。

将数据发送到另一个终端的stdin(并且因此发送到raw_input)显然是一个危险的想法,因为这将允许在其他人的终端中执行命令。

导向/proc/script_PID/fd/0将无效 - 这与/ dev / pts /中的相同设备相关联。