我正在使用paramiko
通过SSH连接到远程主机,并运行一些简单的命令,例如cd
。在第二个命令中,我需要传递一个参数,如下例所示:
import paramiko
import os
import shutil
import datetime
import socket
X='ABCDF12'
p=paramiko.SSHClient()
p.set_missing_host_key_policy(paramiko.AutoAddPolicy())
p.connect("example.com",username="tatta",password="abcy1")
print(socket.gethostname())
stdin, stdout, stderr = p.exec_command("cd /bca/scripts;touch $X")
opt = stdout.readlines()
opt = "".join(opt)
print(opt)
预期:ABCDF12
实际:touch command not working
答案 0 :(得分:2)
我认为您的问题出在exec_command()
参数中。试试这个:
stdin, stdout, stderr = p.exec_command("sh -c 'cd /bca/scripts; touch {}'".format(X))
它在shell中运行命令(例如cd
起作用),而{}扩展X变量。