rcでtelnet
UNIXの漢はzshを使うらしいが,Plan9の漢はrcを使う(というか老若男女,選択肢がないが).zshは究極のシェルとか言われるだけあって,高機能だが,rcもある意味負けてはいない.
例えば,/sources/contrib/fgb/rc/telnetはrcで書かれたtelnetクライアントだ.シェルスクリプトで,しかもたったこれだけで書けてしまうのだ.
#!/bin/rc clonefile=/net/tcp/clone if(! ~ $#* 2) { echo Usage: telnet ip port >[1=2] exit usage } <[4] $clonefile { netdir=`{basename -d $clonefile} ^ / ^ `{cat /fd/4} echo connect $1!$2 >$netdir/ctl || exit 'cannot connect' cat $netdir/data & cat >$netdir/data }
もちろん,これはシェルというよりもOSが強力だから可能になった芸当である.ここでやっていることは,rcでエコークライアントで書いたこととだいたい同じだ.zshでもネットワークプログラミングできそうだが,こんなに簡単には書けないだろう.あくまでシェルはOSのラッパー,糖衣なのである.