我正在将命令从一个终端转发到另一个终端。目前,我正在执行以下操作
我创建了新的终端
gnome-terminal
我通过以下方式获取它的 tty
w
然后我可以通过 python 脚本转发命令给它(在这里找到:https://stackoverflow.com/questions/10376251/linux-write-commands-from-one-terminal-to-another)
#!/usr/bin/python
import sys,os,fcntl,termios
if len(sys.argv) != 3:
sys.stderr.write("usage: ttyexec.py tty command\n")
sys.exit(1)
fd = os.open("/dev/" + sys.argv[1], os.O_RDWR)
cmd=sys.argv[2]
for i in range(len(cmd)):
fcntl.ioctl(fd, termios.TIOCSTI, cmd[i])
fcntl.ioctl(fd, termios.TIOCSTI, '\n')
os.close(fd)
这个方法运行良好,只是我必须手动获取新窗口的 tty,这对于将其封装在更大的脚本中不太好。有没有办法让脚本获取它打开的 gnome 终端的 tty?
我现在的解决方案是让脚本在调用“gnome-terminal”之前和之后调用“w”来推断刚刚打开了哪个终端,但这很容易出错。