Кто знает норм способы обработки аргумента в shell-команде в Python? Я понимаю, что есть subproccess и подобные библиотеки, но речь идёт о передаче параметра через SSH. Достаточно ли надёжной будет функция shell_escape в коде ниже?
Python:
import paramiko
import sys
def shell_escape(arg):
return "'%s'" % (arg.replace(r"'", r"'\''"), )
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname="192.168.0.272", username="root", password="toor", port="22")
stdin, stdout, stderr = client.exec_command("sh script.sh {}".format(shell_escape(sys.argv[1])))
data = stdout.read() + stderr.read()
client.close()
print(str(data))
Последнее редактирование: