您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

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

也就是说,仅ls,notls -al用作-c选项的参数。-al用作外壳本身的第一个参数,而不是ls

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

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

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

其他 2022/1/1 18:33:37 有550人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶