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 \ $ line、echo "$ line"も試みました。しかし、出力としてハローにならない。
ありがとう:
はあなたのコードの堅牢性を高めるためにPythonの3使用shlex.quote
で、( @Tripleee 感謝)安全性の問題に注意してください。それは働いた! – vishnu二重引用符やドル記号、バッククォートを含む 'line'の値に対しては堅牢ではありません。これはそれぞれシェルによる変数補間とコマンド置換を導入します。一重引用符は後者を避けて前者を回避しますが、一重引用符を含めることはできません。完全に頑強にするには、[shlex.quote() '](/ questions/35817/how-to-escape-os-system-calls-in-pythonなど)を使用する必要があります。 – tripleee
非常に良い点@トリプル、ありがとう;) – klashxx