0
import paramiko, commands
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.load_system_host_keys()
ssh_client.connect('xx.xx.x', username='abc',
key_filename='rsa')
line ="Hello"
stdin, stdout, stderr=ssh_client.exec_command('echo $line')
print stdout.readlines()
我想將「行」內容傳遞給回顯。但我得到 [u'\ n']作爲輸出。如何將本地變量傳遞給遠程回顯命令?
我也試過echo \ $行,echo「$ line」。但沒有得到你好作爲輸出。
感謝。工作! – vishnu
對於包含雙引號或美元符號或反引號的'line'值,它仍然不健壯,它們分別引入了shell的可變插值和命令替換。單引號可以防止後者繞過前者,但是後者的值不能包含單引號。爲了完全健壯,你需要使用[如'shlex.quote()'](/ questions/35817/how-to-escape-os-system-calls-in-python)。 – tripleee
非常好的一點@tripleee,謝謝;) – klashxx