32nd Diary

過去の日記
today: , yesterday: , total:
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 -r base64 -e 'puts Base64.decode64("dGFrQG5vMzIudGs=")'


トップ «前の日記(2004-05-17 (Monday)) 最新 次の日記(2004-05-19 (Wednesday))» 編集

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

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

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

A -> B -> C

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

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

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

Tags: UNIX Ruby
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オンリーな環境でしたか...残念...

A -> B -> C (Ruby)

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

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

Tags: UNIX Ruby
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した内容が出てしまうのがちょっと気になる...

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

属性文法(AG: Attribute Grammar)

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

やべぇ.手ごわいです.

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

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

Tags: Univ
[]
本日のPingbacks(全0件)