32nd Diary

トップ | 最新 | 過去の日記 | もっと過去の日記

2004年
5月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
めーるあどれす
ruby -rbase64 -e'puts Base64.decode64 %q(dGFrYW5vMzJAZ21haWwuY29t)'



2004-05-18 (Tuesday) [長年日記]

今日から比較的余裕のある日程になりそうです.

とか,油断していたら,明け方5時に就寝,8時に家を出て,25時帰宅になってしまった.何時間寝れた,とかあまり考えたくないッス.(ぶ

[UNIX][Ruby] A -> B -> C

今日の明け方,風呂に入る前にこの記事を読んで風呂の中で考えてみました.

直接ツッコミを入れようと思いましたが,長くなりそうなのでこちらに書いてみました.(気づいてもらえませんでしたら,ポインタだけ示しにツッコミを..(死

自分ならこうするかな的スクリプト.

exec_at_a.sh(Aで実行するファイル)
#! /bin/sh
EXEC_FILE=exec_at_b.rb
EXEC_CMD=`sed -ne '1s/^#!\w*\(.*\)\w*$/\1/p' $EXEC_FILE`
cat $EXEC_FILE | ssh address.to.b "$EXEC_CMD"
exec_at_b.rb(Bで実行させたいファイル)
#! /usr/bin/env ruby -Ke
# ...(Cへtelnetするスクリプトとか.)

これでBにファイルを置かなくても大丈夫な予感.

しかし,telnetしか使えない条件でしたら,使えませんね.rshが使えれば大丈夫ですが...

それにssh-agentを使わないのであれば,パスワードを入力する必要が...orz

追記

さっそくrufeinさんからレスが.ありがとうございます.

むむぅ.telnetオンリーな環境でしたか...残念...

[UNIX][Ruby] A -> B -> C (Ruby)

というわけで,懲りずにまたやってみました.今度のスクリプトはRubyですね.

こういった小さめのものを作ってると,いかにも*nixいじってる感じがして心地よいです.(ダメ

exec_at_a.rb(Aで実行するファイル)
#! /usr/bin/env ruby
require 'net/telnet'
file = File.open("exec_at_b.rb")
src = file.read
file.close
 
telnet = Net::Telnet.new("Host" => "address.to.b")
telnet.login("username", "passwd")
 
telnet.puts("cat | ruby")
telnet.puts(src)
telnet.cmd("^D"){|c| print c}
 
telnet.cmd("exit")
telnet.close
exec_at_b.rb(Bで実行させたいファイル)
#! /usr/bin/env ruby -Ke
# ...(Cへtelnetするスクリプトとか.)

勝手ながら,ホストBにファイルを置かない,ということを目標にしてしまいました.(ぉ

"^D"はEmacsだったらC-q C-dで,viでしたら,C-v C-dで入力できるEOFです.

方法論としては,上のやつとほとんど同じです.(ぶ

むーん.ローカルの標準出力にtelnet.putsした内容が出てしまうのがちょっと気になる...

しかも,一般的というより,マニアックな感じがしてきたゾ...すみません.

[Univ] 属性文法(AG: Attribute Grammar)

ネットワークのゼミは一通りやったので,新しい題材として属性文法を扱うことになりました.

やべぇ.手ごわいです.

自由文脈文法の拡張のようなものなんですけど,数式が妙に複雑なんですよねぇ...

簡単なことでも複雑に説明してあるように思えましたし...>教科書

本日のPingbacks(全0件)