【发布时间】:2015-08-03 23:25:54
【问题描述】:
我在 unix 系统中打开了 2 个终端。 在一个终端上,我运行了一个接受 raw_input 的 python 程序,我想从另一个没有运行这个 python 程序的终端提供这个 raw_input。
我试过类似的东西:
回声 3 > /dev/pts/172
但这只是在终端上打印数字 3,并没有真正实现从键盘输入“3”和 ENTER 键的功能
终端1是/dev/pts/252,终端运行python程序是/dev/pts/172
【问题讨论】:
-
这里有一些东西可以尝试。使用 ps auxww|grep script_name 查找正在运行的 python 脚本的 pid,或者让脚本在开始使用 os.getpid() 时将其打印出来。脚本的标准输入应位于 /proc/script_PID/fd/0。使用 exec 1 > /proc/script_PID/fd/0 将另一个终端的输出重定向到此文件。现在在另一个终端中的 echo hello run 将转到正在运行的脚本的输入。您也可以在其他脚本中运行 echo hello > /proc/script_PID/fd/0 ,但这需要在要输入到其他脚本的每一行中添加 '> /proc/script_PID/fd/0 '。
标签: python linux unix terminal