在Subprocess 中具體使用'shell=True'
當使用subprocess 模組時,'shell=True' 參數服務於特定的參數目的。雖然以下兩個程式碼片段執行相同的過程,但它們的方法不同:
callProcess = subprocess.Popen(['ls', '-l'], shell=True) callProcess = subprocess.Popen(['ls', '-l']) # without shell
何時使用'shell=True'
呼叫'shell= True' 表示該指令將透過shell 解譯器執行,從而允許擴展環境變數和檔案全域。但是,這種方法有潛在風險:
首選方法
通常,建議避免使用 'shell=True'。以下是一些原因:
總結
總結除非您有特定的shell 擴充需求,否則建議為子進程呼叫設定'shell=False'。這確保了該過程直接執行,而不依賴解釋器或引入不必要的風險。以上是我什麼時候應該將 `shell=True` 與 `subprocess` 模組一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!