【メモ】エラー処理、処理内容非表示などexpectを外部から使用する際に気を付けること。
エラー処理、処理内容非表示など、expectを外部から使用する際に気にした点のメモです。
当たり前と言えば当たり前なのですが、正しくその処理が終わったかを確認する必要が重要です。いわゆるエラー処理や終了コードの話です。あまりコードを書き慣れていない頃は気にしないですよね。
os.systemで簡単に戻り値を確認できるので、終了コードを意識して記載しておくと親切なプログラムが作れると思います。
os.systemについては前回のエントリを参照 http://komeiy.hatenablog.com/entry/2014/07/30/201751
直前の終了コード確認コマンド
正常終了
$ echo $? 0
異常終了
$ echo $? 1
expectの終了コードについて
expectとsendで処理を1行1行書くとexit 0で終わってしまいます。 重要な箇所には必ず以下のようにエラー処理を付けておくのが好ましいと思います。
書き方①
expect { default {exit 1} ">" }
書き方②
expect { "XXXX" {exit 2} "#" }
sshの過程などの出力を表示しない方法
出力なし
#!/usr/bin/expect log_user 0
テキストに出力
#!/usr/bin/expect log_user log.txt
interact文について
「spawnの入出力をキーボードと画面にする」という動作です。勘違いしていましたが、制御をシェルに戻すだけなのでtelnetやsshのセッションは切れていないことに注意です。
シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。
- 作者: 辻真吾
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/24
- メディア: 大型本
- 購入: 19人 クリック: 199回
- この商品を含むブログ (43件) を見る
パーフェクトPython (PERFECT SERIES 5)
- 作者: Pythonサポーターズ
- 出版社/メーカー: 技術評論社
- 発売日: 2013/03/05
- メディア: 大型本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (20件) を見る