Adam Ebrahim نشر 6 يونيو 2021 أرسل تقرير نشر 6 يونيو 2021 أحاول تنفيذ أوامر في سطر الأوامر من بايثون من خلال المكتبة subprocess ، لكن لدي سؤال وهو ما الفرق الذي يحدث عندما أستعمل المدخل shell=True وعندما لا أستعمله؟ كالتالي: callProcess = subprocess.Popen(['pwd'], shell=True) # Output: /mnt/c/Users/Adam callProcess = subprocess.Popen(['pwd']) # Output: /mnt/c/Users/Adam كلتا الطريقتين تعملان بدون مشكلة ولا أجد أي فرق بينهما، أي الطريقتين يجب أن أستخدم؟ 1 اقتباس
2 Wael Aljamal نشر 6 يونيو 2021 أرسل تقرير نشر 6 يونيو 2021 عند تحديد shell=True يتوقع تمرير سلسلة نصية واحدة لعملية shell أما في حال shell=False يمكن تمرير قائمة بعدة أوامر دفعة واحدة. في حالتك تمرر أمر واحد، لذلك لا مشكلة، إنما إن أردت تمرير عدة أوامر عليك تحديد الخيار shell=False 2 اقتباس
السؤال
Adam Ebrahim
أحاول تنفيذ أوامر في سطر الأوامر من بايثون من خلال المكتبة subprocess ، لكن لدي سؤال وهو ما الفرق الذي يحدث عندما أستعمل المدخل shell=True وعندما لا أستعمله؟ كالتالي:
كلتا الطريقتين تعملان بدون مشكلة ولا أجد أي فرق بينهما، أي الطريقتين يجب أن أستخدم؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.