私は(ファイルを作成し、この場合のように)Linuxの端子に接続して、ものを行うことができるようにpythonでいくつかの機能を作るしようとしています。私が持っているコードは、部分的に動作します。あなたがコードを入力した後に何かしたいのであればうまくいきません。たとえば、ファイルを作成してから、別の場所(cd/tmp)に移動したいとします。次のコマンドを実行する代わりに、作成したファイルに追加するだけです。EoFの/ Ctrlキー+ Dコマンド
def create_file(self, name, contents, location):
try:
log.info("Creating a file...")
self.device.execute("mkdir -p {}".format(location))
self.cd_path(location)
self.device.sendline("cat > {}".format(name))
self.device.sendline("{}".format(contents))
self.device.sendline("EOF") # send the CTRL + D command to save and exit I tried here with ^D as well
except:
log.info("Failed to create the file!")
ファイルの内容は次のとおりです。
cat test.txt
#!/bin/bash
echo "Fail Method Requested"
exit 1
EOF
ls -d /tmp/asdasd
実行されたコマンドの順序は次のとおりです。
execute.create_file(test.txt, the_message, the_location)
execute.check_path("/tmp/adsasd") #this function just checks with ls -d if the directory exists.
私はsendline以下の組み合わせで試してみました: ^D, EOF, <<EOF
どのようにして私がマックできるかわからないeこれが起こる。私は、特定のメッセージを含むファイルを作成したいだけです。 (VIでこれを行う方法を研究すると私は同じ問題を抱えて、私は必要なコマンドはESCのための1があった)
誰もが素晴らしいだろういくつかの入力を支援することができれば!
編集:ロブは、文字を送信、後述するように「\ X04」は、実際に動作します。この問題を持つ他の誰のために必要であれば、あなたも他の組み合わせのために、このチャートを参照してくださいすることができます http://donsnotes.com/tech/charsets/ascii.html
'sendline'は実際のテキストをドキュメントに送るわけではないので、EOFを送るためには' execute'が必要です。少なくともそれは私がこれをどのように解釈したか、私はあなたがしていることの多くを理解することができません。 –
ところであなたが考えられている[Ansible](https://github.com/ansible/ansiblae)? – 9000
'self.device'とは何ですか? –