BAGAIMANA saya bisa menyalurkan hasil which somecommand ke outerCommand untuk mereplikasi hasil dari apa yang akan saya lakukan di Shell sebagai outercommand 'which somecommand'

0
Chang Zhao 1 Juni 2020, 21:47

1 menjawab

Jawaban Terbaik

Menurut saran dari dokumentasi, saya akan menghindari penggunaan antarmuka tingkat rendah Popen, yang sulit digunakan dengan benar dalam jangka panjang, dan menggunakan shell=True tanpa berpikir, yang mungkin membuat Anda < a href="https://docs.python.org/3/library/subprocess.html#security-considerations" rel="nofollow noreferrer">serangan injeksi shell.

Oleh karena itu saya akan menyarankan pendekatan yang lebih sederhana jika hanya itu yang Anda butuhkan: cukup ambil output dan gunakan menggunakan parameter capture_output baru dari subprocess.run() API baru.

Ini akan mendapatkan apa yang Anda butuhkan:

completed_process = subprocess.run(['outercommand', subprocess.run(['which', 'somecommand'], capture_output=True).stdout], capture_output=True)

completed_process.check_returncode()
print(completed_process.stdout.decode('utf-8'))
0
Pentracchiano 1 Juni 2020, 19:05