观察http://docs.python.org/2/library/subprocess.html#frequently-used-arguments,我假设除非使用
shell=True
,否则无法使用rm
、cp
、mv
等命令。也许文档已过时,因为他们正在使用字符串提供的call方法,而应该是列表。但使用shell=False
并不会阻止使用这些shell命令。
shell=False
禁用所有基于shell的功能。
在查看subprocess.py之后,我可以看到该参数所做的全部工作只是将["/bin/sh", "-c"]
添加到参数字符串的开头。
有人能为我澄清这个问题吗?
rm
、cp
和mv
等命令,那么你真的没有理解好Python的用法。试着使用os和shutil模块中内置的众多跨平台方法。 - Alastair McCormackecho
。祝你好运 :) - Alastair McCormackshell=False
来防止那种情况的全部意义,经过进一步了解之后,他想知道如果不是正好这个选项,还有哪些其他好处呢!;-) 个人见解。 - Don Question