RubyOnRails

Rubyで対話型のコマンドを実行する~pty expect

投稿日:

 

Rubyから普通のLinuxコマンドを実行するのはコマンドで実行できる
たとえば、Linuxコマンドがなんらかの入力を要求するときはexpectライブラリを使えばいいらしい

www.ruby-forum.com/topic/83119

ここで、サンプルがあったので試してみた

しかし、これを実行してもうまくいかない

まず、結果を出力するのは

その結果

んー 途中で止まってるような

コマンドラインで試してみる

d.hatena.ne.jp/takuya_1st/20110919/1316426672

PTYは仮想端末を作成して、このスクリプトの場合、r_fで端末の出力、w_fで端末の入力を行う

expectはr_fから希望する文字列がくるのを待って、処理を実行する

問題はプロンプト待ちの r_f.expect("> ") do |output|がシンボリックリンク?の ->も拾ってるからっぽい

名前つきのプロンプトを指定すれば

。。。

正規表現を最小マッチにする?をつければ

うん

 

-RubyOnRails
-

執筆者:

  • suisui

    通りすがりのついでに

    でどうでしょう?

関連記事

RVMでRubyのバージョンアップ

By: Geri Coady – CC BY 2.0 目次1 RVMのバージョンアップ2 Rubyのバージョンアップ3 2.0.0から2.1.0にバージョンアップ4 gemのバージョンアッ …

erbで要素のidやclassを指定するならcontent_tag_forとdiv_forが便利だった

Ruby+guardでSass+Compass+CoffeeScriptの自動コンパイル環境を整える

    Ubuntu12.04.1でCoffeeScriptの自動makeとブラウザの自動リロード~guard-coffeescript すでにCoffeeScriptを自動Mak …

no image

Rails3部分テンプレートとAjax化のまとめ

参考 guides.rubyonrails.org/layouts_and_rendering.html#using-partials また混乱したので公式を参考にして書き直しました 目次1 部分テン …

Rails3.2.11でTwitterBootstrapのモーダルをフォームに使う例

  Rails3.2でTwitterBootstrap導入のあれこれ sass-rails-bootstrapとsimple_formを使っている Rails3.2でCoffeeScript …