タグ

expectに関するdharryのブックマーク (6)

  • Rubyのexpect.rbの使い方

    SSHでつないで何か操作を行ったり、パスワードの入力を自動化したり、対話形式のプログラムをプログラム中から利用する場合は、expectモジュールを使用するのが一般的です。 Rubyは標準ライブラリ中にexpect.rbが存在していますが、IO#exceptとしてIOのメソッドとして定義されていて、このままでは扱いにくいので、仮想端末を扱うPTYライブラリとあわせて使用します。 require 'pty' require 'expect' module Expect def spawn(cmd) puts "CMD: #{cmd}" if $expect_verbose PTY.spawn(cmd) do |r,w,pid| @input_stream = r @output_stream = w @child_pid = pid PTY.protect_signal do yield en

  • zshのzptyを使って端末が必要な処理を自動化する - 技術メモ帳

    zsh のモジュールに zpty というのがあるのを最近発見した。 どうもコレを利用すれば指定したコマンドを 仮想端末上で実行することが出来るらしい。 具体的にどういったことが出来るようになるのかというと、 端末が必要なプログラムを自動化することが出来る。 たとえば、パスワード入力処理などだ。 パスワード文字列を標準入力から読み込ませようとしても、 大抵のプログラムでは入力できない。 なぜかというと、多くのプログラムにおいてパスワード入力処理は 端末から読み込むように作られているからだ。 zpty を利用すればそういったたぐいのものをすべて自動化できる。 いわゆる、expect というコマンドで実現していたことが zsh だけで出来るのだ。 今回は、簡単に試すことが出来るサンプルとして、 su コマンドのパスワード入力を zpty を使って自動化してみる。 まず、zsh に標準添付されてい

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • expect

    Expectの書き方 目次 Expectについて 実例1 他のCPUにtelnet、操作の全てをファイル記録する。 実例2 telnet、ls -1の結果を記録、logout後に出力する。 命令expect expectスクリプトの作成 引数操作 expect_internal expect_out() expect_user interact log_file log_user send_error send_log send_user spawn timeout 文字列処理 文字定数 組み込み変数 正規表現 算術関数 配列 FAQ 元にもどる。 Expectについて: Expectはtcl/tkの拡張言語であって、SQLやtelnetなど会話形式通信を テキストファイル操作で自動的に実行できます。 また、ホームページCGIにも利用できま

  • Expect

    Summary Expect , by Don Libes, is known primarily as an indispensable application for system administrators. Amazingly enough, it is, at its heart, just another Tcl extension. Attributes nameExpectwebsitehttps://core.tcl.tk/expect websitehttps://www.nist.gov/services-resources/software/expect Use Cases LV: Our local public library used to have a telnet interface to its patron account system. I wro

    dharry
    dharry 2008/09/20
    expect wiki
  • expectの使い方について

    どもです。 参考にしてみてください。 #!/usr/local/bin/expect set host "192.168.1.10" set prompt "prompt" set passwd "passwd" set timeout -1 log_file expect.log if [catch {open "./cmd.txt" r} fd] { puts "Can't open cmd.txt...\n" exit } spawn telnet $host expect { "Connection timed out" {puts "\n\nTime out....\n"; exit} "password:" } send "$passwd\r" expect { "Permission denied" {puts "\n\nPassword Invalid...\n"; exi

    expectの使い方について
  • 1