如何获取用于启动新终端的 sh 脚本,执行 python 脚本并保持其运行? python 脚本应该在永久循环中连续运行,在弹出结果时吐出结果。每当尝试使用 gnome 终端的 sh 脚本时,都会得到:子进程正常退出,状态为 2
手动它只是:python home/ubuntu/pyscript.py
有人可以给出如何做到这一点的想法吗?
我有一个要运行的脚本列表,因此采用手动解决方案很乏味。
要在您喜欢的终端的新实例中运行 Python 脚本,请编写:
x-terminal-emulator -e python -i home/ubuntu/pyscript.py
这将启动 Python 脚本并运行它直到结束,然后显示 Python 提示以阻止终端模拟器关闭。
这将与
x-terminal-emulator
一起使用,替换为我的计算机上安装的许多终端中的任何一个,因此只需稍加修改即可在安装了标准终端的所有 POSIX 兼容系统上工作。然而,这在 Mac 上不起作用。对于稍微不同的东西的正确跨平台Python实现,请参阅这里。大多数技术应该是可以转移的。
要在同一终端中运行 Python 脚本,同时继续执行 shell 脚本的其余部分,请编写:
python home/ubuntu/pyscript.py &
注意
&
,它将程序作为新进程运行(但仍将输出连接到虚拟终端)。
您可以将
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