簡體   English   中英

subprocess.Popen shell =使用ssh命令時真為shell = False

[英]subprocess.Popen shell=True to shell=False when using ssh command

我有命令:

proc = subprocess.Popen(["sshpass -p root ssh root@(IP_ADRESS) 'cd
/home/pi/reed && python reed.py'"],  shell=True,
stdin=subprocess.PIPE, stdout=subprocess.PIPE, )

shell=True很危險,因此我想避免使用它,而要使用shell=False

有什么提示嗎?

您應該拆分命令。 像這樣:

proc = subprocess.Popen("sshpass -p root ssh root@(IP_ADRESS) 'cd /home/pi/reed && python reed.py'".split(), stdin=subprocess.PIPE, stdout=subprocess.PIPE, )

也許這個嗎?

proc = subprocess.Popen(["sshpass", "-p", "root", "ssh", "root@(IP_ADRESS)", "cd /home/pi/reed && python reed.py"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM