打开终端运行命令python

问题描述 投票:0回答:4

我正在尝试打开终端并在其中运行命令。我正在使用

os.system("gnome-terminal -e 'bash -c \"exec bash; MY_COMMAND; exec bash\" '")

这将打开一个新终端,但命令未执行。

python
4个回答
7
投票

exec
命令将当前正在运行的进程替换为新进程,因此如果要运行的命令列表中有一个 exec,那么一旦 exec 运行,其他任何进程都不会运行。因此,您将
'bash -c \"exec bash; MY_COMMAND; exec bash\" '
替换为
bash
,然后在
exec bash
运行后什么也不做。试试这个:

os.system("gnome-terminal -e 'bash -c \"MY_COMMAND\" '")

或者如果您需要终端保持打开状态,请尝试以下操作:

os.system("gnome-terminal -e 'bash -c \"MY_COMMAND; sleep 1000000\" '")

如果您希望终端保持打开状态并处于 bash shell 中,请尝试以下操作:

os.system("gnome-terminal -e 'bash -c \"MY_COMMAND; bash\" '")

6
投票

我们开始...

command="python3 --version"
os.system("gnome-terminal -e 'bash -c \""+command+";bash\"'")

应该可以了...

Output:Python 3.6.4

输出进入新终端......


1
投票

运行命令后如何打开和关闭该终端

您可以在python文件中运行此命令

os.system("gnome-terminal -e 'bash -c \"sudo -S <<< Notadmin apt-get update && exit; exec bash\"'")

在这个命令中,我们有多个参数

  1. 它将首先打开一个终端。
  2. 它也将运行简单的命令和 sudo 命令。
  3. 安装后会自动关闭。

我正在使用 Ubuntu 20.04 并在我的 API 中使用此命令。而且效果很好。

**sudo -S <<< Notadmin apt-get update**
  • -S这个参数读取密码'Notadmin'是我的系统密码

无需 sudo 即可工作

os.system("gnome-terminal -e 'bash -c \"pip install python && exit; exec bash\"'")

0
投票

我试图在这里做同样的事情,但我不断收到错误

选项“-e”已弃用,可能会在更高版本的 gnome-terminal 中删除。

使用“--”终止选项并将命令行放在其后执行。

我尝试按照它所说的去做,但似乎没有任何效果

我想做的只是这里的一个简单任务

os.system(“gnome-terminal -e 'bash -c“sudo apt update”'”)

我将不胜感激任何帮助 这是在Linux系统中

© www.soinside.com 2019 - 2024. All rights reserved.