gpt4 book ai didi

python - 如何在 python 中使用命令打开 shell?

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:23 25 4
gpt4 key购买 nike

当我在 bash 中输入以下命令时,它会打开一个新的 shell 并在其中打开 nano:

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

所以我在我的 python 代码中使用 subprocess 进行了同样的尝试:

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

我已经尝试了很多组合。基本上我只想在 nano 中打开一个带有特定文件的 shell。

起初我认为这将是最简单的步骤之一,但事实证明它非常困难。不知道问题是否由于屏蔽而存在,或者这是否是传递变量的常见问题,就像我在 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)

)

关于python - 如何在 python 中使用命令打开 shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34089384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com