按标题查找xterm窗口,输入一个命令,然后使用python/bash按return键
我有一个自定义标题的xterm窗口。xterm是通过以下方式启动的:按标题查找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-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库可以让我根据给定的标题找到窗口,并模拟键盘,就像有人在输入文本一样?谢谢