Как я могу использовать переменную, присутствующую в программе Python, внутри функции выполнения команды Linux

#python #linux #ssh #paramiko

#python #linux #ssh #парамико

Вопрос:

 import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.WarningPolicy())
client.connect('example.com',22,'XXXXX','XXXX')
a=input ("enter the file path")
stdin,stdout,stderr=client.exec_command('cd a amp;amp; pwd')
  

Я хочу передать переменную ‘a’ в exec_command ..
Я пытаюсь получить путь к файлу от пользователя и сохраняю его в переменной a, я хочу знать, как я могу передать переменную a команде Cd в функции exec_command

Ответ №1:

Поскольку при внедрении кода могут быть некоторые недостатки безопасности, вы не должны форматировать пользовательский ввод непосредственно в команды оболочки.

Здесь вы можете использовать переменные среды:

 stdin,stdout,stderr=client.exec_command('cd "$a" amp;amp; pwd', environment={'a': a})
  

Ответ №2:

Вы пробовали создавать команду из переменной?

 stdin,stdout,stderr=client.exec_command('cd '   str(a)   'amp;amp; pwd')
  

Комментарии:

1. спасибо.. Позвольте мне попробовать это

2. Это может быть невероятно опасным.