Penggunaan Spesifik 'shell=True' dalam Subproses
Apabila menggunakan modul subproses, argumen 'shell=True' berfungsi dengan spesifik tujuan. Walaupun kedua-dua coretan kod berikut melaksanakan proses yang sama, ia berbeza dalam pendekatannya:
callProcess = subprocess.Popen(['ls', '-l'], shell=True) callProcess = subprocess.Popen(['ls', '-l']) # without shell
Bila Menggunakan 'shell=True'
Menyebut 'shell= True' membayangkan bahawa arahan akan dilaksanakan melalui penterjemah shell, membenarkan pengembangan pembolehubah persekitaran dan glob fail. Walau bagaimanapun, pendekatan ini membawa potensi risiko:
Diutamakan Pendekatan
Secara amnya, adalah dinasihatkan untuk mengelak daripada menggunakan 'shell=True'. Berikut ialah beberapa sebab:
Ringkasan
Melainkan anda mempunyai keperluan khusus untuk pengembangan cangkerang, adalah disyorkan untuk menetapkan 'shell=False' untuk permohonan subproses. Ini memastikan bahawa proses itu dilaksanakan secara langsung tanpa bergantung kepada jurubahasa atau memperkenalkan risiko yang tidak perlu.
Atas ialah kandungan terperinci Bilakah Saya Perlu Menggunakan `shell=True` dengan Modul `subproses`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!