当使用shell = True wlist时,subprocess.call()参数将被忽略

当使用shell = True wlist时,subprocess.call()参数将被忽略,第1张

当使用shell = True w / list时,subprocess.call()参数将被忽略

shell
为True时,第一个参数附加到
["/bin/sh", "-c"]
。如果该参数是一个列表,则结果列表为

["/bin/sh", "-c", "ls", "-al"]

也就是说,仅

ls
,not
ls -al
用作
-c
选项的参数。
-al
用作外壳本身的第一个参数,而不是
ls

使用时

shell=True
,通常只需要传递一个字符串,然后让外壳程序根据外壳程序的常规分词规则对其进行拆分。

# Produces ["/bin/sh", "-c", "ls -al"]subprocess.call("ls -al", shell=True)

就您而言,似乎根本不需要使用

shell=True



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5643607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存