expect 便利ですよね。
expect コマンドがあればターミナルの自動入力が出来ます。
ruby でも使ってました。 でも ruby は gems がもう地獄でちょっとずつ python / javascript に移行しようと思っています。
使い方:import
import pexpect
起動と処理待ちは spawn
import pexpect prc = pexpect.spawn("find") prc.expect( pexpect.EOF )
コマンドの終了待ちは EOFで行います。
出力結果がほしい時
sys.stdout につなげます。
import pexpect import sys prc = pexpect.spawn("find") prc.logfile = sys.stdout prc.expect( pexpect.EOF )
文字列の送信
基本的な使い方が分かったので入力する。
import pexpect import sys prc = pexpect.spawn("ssh user@192.168.2.1 ") prc.logfile = sys.stdout prc.expect("password:") prc.sendline("PASSWORD") prc.expect( pexpect.EOF )
これでパスワードは入力できる。基本的なところが分かった。
spawn は 通常の spawn と同じ
prc = pexpect.spawn("ssh",["user@192.168.2.1 "] )
オプションを使うときは配列で与えてもいいし、パイプも使えるし。
すごく楽ですね。
なぜか、うちの環境にはpexpect が最初から入ってた。。。python 素晴らしい。