我很疑惑爲什麼Sublime Text 2構建系統傾向於將exec命令作爲數組。雖然這是在文檔(和作品)中提出的,但將該命令作爲字符串運行也是一樣,並且(在我看來)更直接。Sublime build exec命令數組
http://docs.sublimetext.info/en/latest/reference/build_systems/exec.html
我很疑惑爲什麼Sublime Text 2構建系統傾向於將exec命令作爲數組。雖然這是在文檔(和作品)中提出的,但將該命令作爲字符串運行也是一樣,並且(在我看來)更直接。Sublime build exec命令數組
http://docs.sublimetext.info/en/latest/reference/build_systems/exec.html
崇高文本構建系統使用subprocess.Popen
,其中建議的陣列的使用。否則,解釋是依賴於平臺的。
從python 2 subprocess documentation引:
ARGS應的程序參數的序列或者一個字符串。默認情況下,如果args是一個序列,則要執行的程序是args中的第一個項目。如果args是一個字符串,則解釋是依賴於平臺的(...)。除非另有說明,否則建議將參數作爲序列傳遞。
其他重要舉(感謝@Dimpl指出了這一點):
殼參數(缺省爲假)指定是否使用殼作爲要執行的程序。如果shell是True,建議將args作爲字符串而不是序列傳遞。
外殼參數設置真如果使用shell_cmd
和假爲cmd
。因此,根據這些引用,我建議使用cmd
的數組和shell_cmd
的字符串。
注意(從上面引用的文檔):shell參數(默認爲False)指定是否使用shell作爲要執行的程序。如果shell爲True,建議將參數傳遞爲字符串而不是序列。 – Dimpl
謝謝@Dimpl,我添加了引用我的答案 –
Sublime Text構建系統調用'subprocess.Popen',它建議使用一個數組。否則,行爲是依賴於平臺的,並且字符串在非Windows系統上具有明顯不同的行爲。請閱讀[文檔](https://docs.python.org/2/library/subprocess.html#popen-constructor)。 –
如果你想把它作爲答案,我會結束這個問題。 – Dimpl