繁体   English   中英

如何在python中使用命令打开外壳?

[英]How can I open a shell with a command in python?

当我将其键入bash时,以下命令将打开一个新外壳并在其中打开nano:

gnome-terminal -e "bash -c 'nano test; bash'"

所以我在subprocess python代码中尝试了相同的方法:

import subprocess
command = "gnome-terminal"
args = " -e \"bash -c 'nano test; bash'\""
subprocess.call([command, args])

我已经尝试了很多组合。 基本上,我只想打开一个带有Nano特定文件的外壳。

首先,我认为这将是最简单的步骤,但事实证明这非常困难。 不知道问题是否由于屏蔽而存在,或者是否像在shell中那样使用变量是常见问题。 因此,对于AskUbuntu或Unix部分,这可能是一个问题……不确定……

args应该与您在命令行上使用的单个字符串集相同。 如果一次构造所有列表,考虑起来会更容易。 gnome-terminal是命令,它带有两个参数。 (第二个参数通常被认为是-e选项的参数,但是从调用者的角度来看,它只是两个参数gnome-terminal本身是将它们组合为一个选项/参数对的参数。)

command = ["gnome-terminal", "-e", "bash -c 'nano test; bash'"]
subprocess.call(command)

(请注意,您可以只传递一个字符串,然后让Shell对其进行排序,但是显式参数列表更为出色。

subprocess.call('''gnome-terminal -e "bash -c 'nano test; bash'"''', shell=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM