Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按标题查找xterm窗口,输入一个命令,然后使用python/bash按return键_Python_Linux_Bash_Terminal_Xterm - Fatal编程技术网

按标题查找xterm窗口,输入一个命令,然后使用python/bash按return键

按标题查找xterm窗口,输入一个命令,然后使用python/bash按return键,python,linux,bash,terminal,xterm,Python,Linux,Bash,Terminal,Xterm,我有一个自定义标题的xterm窗口。xterm是通过以下方式启动的:xterm-T customTitle 我想从另一个xterm或gnome终端上运行的python/bash脚本在这个xterm窗口中输入一个命令(例如ls-l),然后按Return(回车)键执行该命令 这可能吗?有没有办法通过窗口标题或pid查找活动xterm并从另一个终端执行命令 如果这不能通过编程实现,是否有一些python库可以让我根据给定的标题找到窗口,并模拟键盘,就像有人在输入文本一样 谢谢 您可以尝试此操作,运行命

我有一个自定义标题的xterm窗口。xterm是通过以下方式启动的:
xterm-T customTitle

我想从另一个xterm或gnome终端上运行的python/bash脚本在这个xterm窗口中输入一个命令(例如ls-l),然后按Return(回车)键执行该命令

这可能吗?有没有办法通过窗口标题或pid查找活动xterm并从另一个终端执行命令

如果这不能通过编程实现,是否有一些python库可以让我根据给定的标题找到窗口,并模拟键盘,就像有人在输入文本一样


谢谢

您可以尝试此操作,运行命令并将输出重定向到xterm终端-

>>> fp = open('/dev/pts/5','w')
>>> subprocess.Popen('ls -l',shell=True,stdout=fp, stderr=fp)
/dep/pts/5
是从xterm上的“tty”命令获得的文件描述符


希望这有帮助

稍微扩展一下Aro的回答,如果您有一个PID,并且想要找出进程正在使用的tty,则将使用
ps
命令,如
ps o tty=«PID»
。用实际PID编号代替
«PID»

ps的o选项告诉它输出格式列表如下。本例中的列表是
tty=
,它为输出选择控制tty(终端),并为列指定一个空白标签,从而抑制标题行。 下面是我的系统中的一个示例成绩单(带有>提示符):

> ps o tty= 8797
pts/8
> T=$(ps o tty= 8797); echo $T
pts/8

关于响应提示的问题,命令可能是相关的。但是,我相信您需要编写一个
expect
脚本,该脚本在目标终端上运行,而不是在其他控制终端上运行。为此,您可以在
expect
脚本中包含
xterm-T customTitle
命令,但是说
xterm-T customTitle-e somescript
可能更容易,其中
somescript
是一个
expect脚本
或一个设置内容然后运行
expect
的shell脚本。如果您试图自动执行的命令打算在没有任何用户交互的情况下运行,那么请省去
xterm
命令,只在后台进程中运行它。

这是有效的,但不适用于我试图解决的特定问题。这将在xterm上执行命令,但作为子进程。我想做的是在提示符上写下命令并发送一个返回字符。如果您有“是否要继续?”类型的提示,要求用户输入文本并按回车键,则此选项非常有用。如果这不能通过编程实现,是否有一些python库可以让我根据给定的标题找到窗口,并模拟键盘,就像有人在输入文本一样?谢谢