screen+expect=>掛BBS

使用screen+expect掛BBS
正常來說,
不用重新編譯screen就可以正常的流覽BBS,
不過我使用的主機環境是使用UTF-8,
這時,
雖然可以用<ctrl>+<a> :encoding big5 utf8來把big5編碼給轉到utf8上,
但是,
一些符號如:”â–¡”,”ï¿£”,…會無法正常的顯示,
會看到變成”[ “,
這是因為screen裡面的cjk字元寬度判斷錯誤,
會變成1bytes的寬度,
而big5裡面有些編碼無法正確的對應到utf8,
所以需要修正,
我在google上找到了screen 補完計畫,
就照著他的步驟,
在主機上重新編譯screen來使用,(主機OS是fedora core 5)

./configure –prefix=/usr/local
make clean
make
make install

就給它編譯好了…
不過在putty上面看bbs還是很醜,

上網找一下,
看到解決用putty看全形字會變一半的問題了!!(Ronny’s BLOG),
哇勒…
原來是putty設定的問題,
現在putty已經不用重新編譯才會吃cjk的wide了.
putty_cjk
或是你可以使用pietty,
可以很簡單的選擇你要的設定…
pietty_cjk

掛站部份就使用expect來達成掛站,
bbs:

#!/bin/sh
export LANG=zh_TW.Big5
export LC_CTYPE=big5
~/bin/exp_bbs.exp $*

exp_bbs.exp:

#!/usr/bin/expect

spawn telnet -8 [lrange $argv 0 0]
interact timeout 100 { send “\x00″ } #10秒送出一次掛站訊號”\x00”
exit

然後因為每次都要下指令來找我的BBS在哪邊,
很麻煩…
所以…我下screen -S BBS來開啟我要掛逼的screen,
之後只要screen -r BBS就可以了.
不過我還是覺得麻煩,
所以我寫了個script.
mybbs:

#!/bin/bash
if ! screen -r BBS >& /dev/null ;then
LANG=”zh_TW.UTF-8″ screen -S BBS -t ‘BBS-Windtop’ -c /home/kenliao/screenrc-bbs bbs 140.138.2.235
fi

這樣之後我只要下mybbs就可以上逼了:P



留下回應