[#21736] OBJECTDAY 2000 — 助田 雅紀 <masaki.suketa@...>

助田です.

29 messages 2000/04/03
[#21748] Re: OBJECTDAY 2000 — keiju@... (石塚圭樹) 2000/04/04

けいじゅ@日本ラショナルソフトウェアです.

[#21753] Re: OBJECTDAY 2000 — Hideto ISHIBASHI <hideto-i@...4u.or.jp> 2000/04/05

石橋秀仁です。

[#21755] Re: OBJECTDAY 2000 — keiju@... (石塚圭樹) 2000/04/05

けいじゅ@日本ラショナルソフトウェアです.

[#21837] site_ruby & Linux distribution — OZAWA Sakuro <crouton@...>

小澤さくです。

14 messages 2000/04/10

[#21922] ruby-1.4.4 binary for BeOS 5 (Intel) — tenmei@... (Noriaki Harada)

はらだです。

23 messages 2000/04/15
[#21923] Re: ruby-1.4.4 binary for BeOS 5 (Intel) — NAITOH Jun <naitoh@...> 2000/04/15

はじめまして、内藤と申します。

[#21926] Re: ruby-1.4.4 binary for BeOS 5 (Intel) — tenmei@... (Noriaki Harada) 2000/04/16

>はじめまして、内藤と申します。

[#21930] Re: ruby-1.4.4 binary for BeOS 5 (Intel) — NAITOH Jun <naitoh@...> 2000/04/16

内藤です。

[#21968] Re: ruby-1.4.4 binary for BeOS 5 (Intel) — Katsuyuki Komatsu <komatsu@...> 2000/04/17

小松です。

[#21969] Re: ruby-1.4.4 binary for BeOS 5 (Intel) — NAITOH Jun <naitoh@...> 2000/04/17

再び内藤です。

[#21956] Thread & STDIN — Masato Toyoshima <mt@...>

はじめまして、豊島といいます。

16 messages 2000/04/17

[#21981] rd2man — WATANABE Hirofumi <eban@...>

わたなべです.

29 messages 2000/04/18
[#21982] Re: rd2man — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/04/18

Toshです。

[#21985] Re: rd2man — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/04/19

わたなべです.

[#22036] Re: rd2man — Wakou Aoyama <wakou@...> 2000/04/20

青山です。

[#22040] Re: rd2man — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/04/21

Toshです。

[#22014] shell interactive — WATANABE Daisaku <dwata@...3.rim.or.jp>

31 messages 2000/04/20
[#22016] Re: shell interactive — 時田幸粋 <ktokita@...> 2000/04/20

こんにちは、時田です。

[#22017] Re: shell interactive — nobu.nakada@... 2000/04/20

なかだです。

[#22018] Re: shell interactive — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/04/20

わたなべです.

[#22027] Re: shell interactive — 時田幸粋 <ktokita@...> 2000/04/20

こんにちは、時田です。

[#22103] Please put ruby-1.4.4.tar.gz in pub/lang/ruby/1.4/ — "Akinori -Aki- MUSHA" <knu@...>

 お願いがあるのですが、 ruby-1.4.4.tar.gz を FTP ツリーの 1.4/

16 messages 2000/04/25
[#22199] Where to put ruby-i.j.k.tar.gz on? (Re: ) — SUGIHARA Hiroshi <maili31s@...> 2000/04/28

[ruby-list:22103]におきまして、2000/04/25 12:38ほどに、

[#22117] StateGraph: state machine interpreter — Hideto ISHIBASHI <hideto-i@...4u.or.jp>

石橋 "rubyholic" 秀仁です。

16 messages 2000/04/25

[#22159] $LOAD_PATH への追加について — "Sugawara Hajime" <sugawara@...>

 はじめまして、菅原@ホビー・データです。

13 messages 2000/04/27

[#22181] Can't Use optparse — Yamada Kenji <kyamada@...>

28 messages 2000/04/28
[#22186] Re: Can't Use optparse — akira yamada / やまだあきら <akira@...> 2000/04/28

[#22195] Re: Can't Use optparse — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/04/28

Toshです。

[#22261] Re: Can't Use optparse — nobu.nakada@... 2000/05/04

なかだです。

[#22264] Re: Can't Use optparse — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/05/04

Toshです。

[#22270] Re: Can't Use optparse — nobu.nakada@... 2000/05/04

なかだです。

[#22272] Re: Can't Use optparse — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/05/04

Toshです。

[#22300] Re: Can't Use optparse — Koji Arai <JCA02266@...> 2000/05/05

新井です。

[ruby-list:22067] [solved] shell interactive

From: WATANABE Daisaku <dwata@...3.rim.or.jp>
Date: 2000-04-22 16:42:20 UTC
List: ruby-list #22067
皆さんレス有難うございます。
渡辺@t3.rim です。

On Fri, 21 Apr 2000 23:58:13 +0900 WATANABE Hirofumi <eban@os.rim.or.jp>  wrote:
> Linux なら chpasswd とか newusers とか,
> FreeBSD なら pw とか chpass とか.

仰られる通りです。
ただ、扱っているのがSolarisとLinuxとその他という混在環境なので
Rubyでこの類のスクリプトを用意すればプラットホームを気にしなくて
よいかな、と。(ただexpectで待つ文字列はやはりプラットホーム依存...。)

私がテストできる環境では、open3ではLinux, Solaris共うまくゆかず
(先のsync modeパッチをあて、念のためflushはしています ),
PTY モジュール使用版で動作しまた。

わたなべひろふみさんに頂いたレスがほとんど回答ですが
短いものですし自分の環境で動作を確認したスクリプトを
以下に添付します。
---------------
#!/usr/local/bin/ruby

require 'pty'
require 'expect'

#$exptct_verbose = true

PTY.spawn("passwd foobar") do |r_f, w_f, pid|
    w_f.sync = true
    r_f.expect(/.*word: /) do |x|
        print x.join
        w_f.print "oldpass\n"
    end

    r_f.expect(/.*word: /) do |x|
        print x.join
        w_f.print "newpass\n"
    end

    r_f.expect(/.*word: /) do |x|
        print x.join
        w_f.print "newpass\n"
    
    w_f.print "\n"
    w_f.flush
end
`sync`
print "\ndone!\n"

exit 0
---------------

最後の printは特に深い意味ありません。
ただLinux上だと
* コマンド発行直後のexpectが、文字列をつかまえられずに
  待ちにはいってしまうことがある。
* スクリプトが完全に終了してもパスワード変更が反映されていない
  ことがある。
という挙動がみられることがあります。大方うまくうごきます。
これに関してはもう少し時間のあるときに追うことにします。

Solaris上ではパスワード変更後 最後に"successfully changed"
という応答がありますが、これをきちんとexpectしてつかまえてあげないと
とパスワード変更が反映されませんでした。 ふむ。


みなさんのご教示に感謝致します。

Best regards,
Watanabe, Daisaku<dwata@t3.rim.or.jp>

In This Thread

Prev Next