在新的终端窗口打印

时间:2014-09-28 14:18:50

标签: python linux macos terminal

我写了一个有多个线程的脚本,在这个帖子中我使用“print()”代码来打印关于该线程的日志活动,但问题是我不想在一个终端窗口打印所有这些日志。我在ubuntu论坛上发现了这个代码,但它似乎不是一个标准的方式,可以在任何操作系统上运行,包括mac,ubuntu,fedora,... 有没有标准的方法可以在多个终端窗口中输出数据或者比这个代码更好的ida?

import subprocess

pid = subprocess.Popen(args=["gnome-terminal", "--command=python test.py"]).pid
print pid

2 个答案:

答案 0 :(得分:0)

很难理解你的问题是什么意思,但以下内容可能有所帮助。在OSX上启动一个终端并按下Command-N以获得第二个 - 所以你打开了2个终端。现在单击其中任何一个并键入:

tty

它将告诉您与该窗口关联的终端的名称,例如/dev/ttys000

然后进入另一个打开的终端窗口并输入:

echo Hello > /dev/ttys000        # or whatever the other Terminal was called

您应该看到echo命令的输出显示在另一个终端的窗口中,我认为这就是您对问题的意思。

答案 1 :(得分:0)

一个shell(即Bash)并不是真正意识到多个窗口。您可以使用screen来管理多个shell会话。

例如,创建一个新的屏幕会话并在其中执行ifconfig

#create a unique name for the screen session (timestamp + random muber)
timestamp_random=my_$(date +%s)_$RANDOM
#create new screen session in detached mode
screen -S "$timestamp_random" -d -m
#stuff (write) command into that screen session + execute (by hitting newline/ENTER)
screen -r "$timestamp_random" -X stuff $'ifconfig\n'

然后,您可以列出所有屏幕会话:

screen -list

并连接到每个会话以查看输出:

screen -R [sessionname]