我很困惑为什么Sublime Text 2构建系统倾向于将exec命令作为数组。虽然这是在docs(和works)中提出的,但只是将命令作为字符串也可以正常工作,并且(在我看来)更直接。
http://docs.sublimetext.info/en/latest/reference/build_systems/exec.html
答案 0 :(得分:1)
Sublime Text构建系统使用subprocess.Popen
,它建议使用数组。否则,解释依赖于平台。
引自python 2 subprocess documentation:
args应该是一系列程序参数或者是一个单独的字符串。默认情况下,如果args是序列,则要执行的程序是args中的第一项。如果args是一个字符串,则解释依赖于平台(...)。除非另有说明,否则建议将args作为序列传递。
其他重要的引用(感谢@Dimpl指出这一点):
shell参数(默认为 False )指定是否将shell用作要执行的程序。如果shell是 True ,建议将args作为字符串而不是序列传递。
如果对shell_cmd
使用cmd
和 False ,则shell参数设置为 True 。因此,基于引用,我建议使用cmd
的数组和shell_cmd
的字符串。