当
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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)