打开终端,运行python脚本并保持打开状态以获得结果?

时间:2018-04-07 15:36:09

标签: python linux sh gnome

如何获取启动新终端的sh脚本,执行python脚本并使其保持运行? python脚本应该在永久循环中连续运行,在弹出时吐出结果。每当使用sh-script尝试gnome-terminal时,只需获取:子进程正常退出,状态为2

手动它只会是:python home / ubuntu / pyscript.py

有人可以知道如何做到这一点吗?

我有一个要运行的脚本列表,因此使用手动解决方案非常繁琐。

2 个答案:

答案 0 :(得分:0)

您可以将gnome-terminal-x标志一起使用。 假设你有一个spam.py脚本;然后,以下命令将生成一个新终端,在其中运行spam.py,并在脚本结束后关闭终端。

gnome-terminal -x python spam.py

尝试使用此脚本:

# spam.py
import time

for _ in range(5):
    print("eggs")
    time.sleep(1)

然后上一个命令将产生一个终端,该终端将打印eggs五次,然后将关闭。

如果您希望在脚本结束后仍然运行Python解释时打开终端,那么Python的-i标志(doc然后 CTRL + F - > -i)就是您想要的:

gnome-terminal -x python -i spam.py

答案 1 :(得分:0)

要在您喜欢的终端的新实例中运行Python脚本,请写:

x-terminal-emulator -e python -i home/ubuntu/pyscript.py

这将启动Python脚本并运行它直到它结束,然后显示一个Python提示符以阻止终端模拟器关闭。

这将与x-terminal-emulator替换为我的计算机上安装的许多终端中的任何一个终端,因此在安装了标准终端的所有POSIX兼容系统中几乎不会进行任何修改。但是,这不适用于Mac。对于某些略有不同的正确跨平台Python实现,请参阅here。大多数技术都应该可以转让。

要在继续使用shell脚本的其余部分的同时在同一终端中运行Python脚本,请写:

python home/ubuntu/pyscript.py &

请注意&,它将程序作为新进程运行(但仍将输出连接到虚拟终端)。