首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何子处理此CLI命令

如何子处理此CLI命令
EN

Stack Overflow用户
提问于 2016-05-01 10:43:02
回答 2查看 145关注 0票数 0

我希望使用Python获得这个shell命令的输出:

代码语言:javascript
复制
loginctl show-session -p Display -p Active c2

产出如下:

代码语言:javascript
复制
Display=:0
Active=yes

在Python中,我是这样做的:

代码语言:javascript
复制
import subprocess
subprocess.call(['loginctl', 'show-session -p Display -p Active c2'])

我知道这个错误:

代码语言:javascript
复制
Unknown operation show-session -p Display -p Active c2

可能是什么原因?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-01 10:49:57

代码语言:javascript
复制
subprocess.call(['loginctl', 'show-session', '-p', 'Display', '-p', 'Active', 'c2'])

或者,如果您对基本的shell拆分感到满意:

代码语言:javascript
复制
import shlex
cmd = 'loginctl show-session -p Display -p Active c2'
subprocess.call(shlex.split(cmd))

如果将用户输入直接发送到str.splitshlex.split,并将结果与subprocess一起使用,则要小心,这样很容易绕过。

添加shell = True也应该有效,但是有相当多的副作用,请参阅官方文件这个StackOverflow的答案

票数 3
EN

Stack Overflow用户

发布于 2016-05-01 10:45:30

尝试使用shell = True

代码语言:javascript
复制
import subprocess
subprocess.call('loginctl show-session -p Display -p Active c2', shell= True)

输出:

代码语言:javascript
复制
Display=:0
Active=yes
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36965709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档