Kepentingan 'shell=True' dalam Modul Subproses
Modul subproses memudahkan pelaksanaan pelbagai proses. Walau bagaimanapun, memahami peranan parameter 'shell=True' adalah penting.
Pertimbangkan coretan kod di bawah:
callProcess = subprocess.Popen(['ls', '-l'], shell=True)
callProcess = subprocess.Popen(['ls', '-l']) # without shell
Kedua-dua blok kod melaksanakan arahan 'ls -l' , tetapi kehadiran 'shell=True' dalam kod pertama mempunyai kesan yang ketara. Apabila 'shell=True', arahan dilaksanakan melalui shell sistem (ditentukan oleh pembolehubah persekitaran SHELL pada POSIX, cmd.exe pada Windows). Sebaliknya, tanpa 'shell', proses dimulakan secara langsung.
Faedah Menggunakan Shell:
Kebaikan Tidak Menggunakan Shell:
Amalan Disyorkan:
Secara amnya, adalah dinasihatkan untuk menggunakan 'shell=False' atas sebab-sebab berikut :
Oleh itu, melainkan pengembangan pembolehubah persekitaran atau pengembangan glob fail diperlukan dengan jelas, adalah disyorkan untuk menggunakan 'shell=False' untuk keselamatan dan kecekapan yang lebih baik.
Atas ialah kandungan terperinci Sekiranya Anda Menggunakan `shell=True` dengan Modul `subprocess` Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!