如何获取启动新终端的sh脚本,执行python脚本并使其保持运行? python脚本应该在永久循环中连续运行,在弹出时吐出结果。每当使用sh-script尝试gnome-terminal时,只需获取:子进程正常退出,状态为2
手动它只会是:python home / ubuntu / pyscript.py
有人可以知道如何做到这一点吗?
我有一个要运行的脚本列表,因此使用手动解决方案非常繁琐。
答案 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 &
请注意&
,它将程序作为新进程运行(但仍将输出连接到虚拟终端)。