?? program-expect.html
字號:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Author" content="Edward Fu">
<meta name="GENERATOR" content="Mozilla/4.05 [zh-CN] (X11; I; Linux 2.1.127 i686) [Netscape]">
<title>Freesoft Linux FAQ -- 自動發文的expect程序</title>
</head>
<body>
發信人: dfbb (趙無忌), 信區:
Linux
<br>標 題: 自動發文的expect程序
<br>發信站: BBS 水木清華站 (Fri May 1 20:31:01 1998)
<br>
<br> 這篇文章是用expect 自動發 的
<br> expect需要tcl/tk
<br> REDHAT中有這個軟件
<br> 是一個用來做交互式程序的腳本語言
<br> 用它來打mud也很酷的
<br> 下面是我的bbs post 程序
<br> 不太完善,用法:首先輸好自己的USERNAME& PASSWD
<br> then chmod a+x bbs
<br> bbs 文件 版名 標題
<br> 用expect可以去bbs自動取文章
<br> 在聊天室里錄音
<br> 象人一樣聊天 use send_human
<br>
<br> ------------------Cut from here -------------------
<br>
<br> #!/usr/bin/expect --
<br> set CTRLA \001
<br> set CTRLC \037
<br> set CTRLZ \032
<br> set CTRLK \013
<br> set CTRLO \017
<br> set CTRLP \020
<br> set CTRLX \028
<br> set postbuffer ""
<br> set POSTFILE "./postfile"
<br> set TITLE "POST BY EXPECT"
<br> set BOARD "test"
<br> set USERNAME "guest"
<br> set PASSWORD "password"
<br> set debug_flag 1
<br>
<br> if $argc==0 {
<br>
send_user "Too few argument\nUSAGE:\n\tbbs POST_FILE_NAME BOARD TITLE\n\n"
<br>
exit
<br>
}
<br>
<br> if $argc==1 {
<br>
send_user "Too few argument\nUSAGE:\n\tbbs POST_FILE_NAME BOARD TITLE\n\n"
<br>
exit
<br>
}
<br>
<br> if $argc==2 {
<br>
send_user "Too few argument\nUSAGE:\n\tbbs POST_FILE_NAME BOARD TITLE\n\n"
<br>
exit
<br>
}
<br>
<br> if $argc>3 {
<br>
send_user "Too many argument\nUSAGE:\n\tbbs POST_FILE_N BOARD TITLE\n\n"
<br>
exit
<br>
}
<br>
<br> set POSTFILE [lindex $argv 0]
<br> set BOARD [lindex $argv 1]
<br> set TITLE [lindex $argv 2]
<br>
<br> if [file exists $POSTFILE] {
<br>
send_user "Start autoposting file..."
<br>
} else {
<br>
send_user "Not find file $POSTFILE !!!\n"
<br>
exit
<br>
}
<br>
<br> proc readfile {} {
<br>
global POSTFILE postbuffer
<br>
<br>
if [catch {open $POSTFILE} fp] return
<br>
say "reading post file"
<br>
set line 0
<br>
while {[gets $fp postbuffer]!=-1} {
<br>
send " $postbuffer\r"
<br>
incr line
<br>
}
<br>
close $fp
<br>
say "I have success posted $line line "
<br>
}
<br>
<br> proc say {msg} {
<br>
global debug_flag
<br>
<br>
if !$debug_flag return
<br>
<br>
if [catch {puts "parent: $msg"}] {
<br>
send_log "child: $msg\n"
<br>
}
<br>
}
<br>
<br> spawn /usr/bin/telnet 202.112.58.200
<br> expect "login"
<br> send "bbs\r"
<br> sleep 1
<br> expect "new'):"
<br> send "$USERNAME\r"
<br> sleep 1
<br> expect "請輸入密碼:"
<br> send "$PASSWORD\rq\r\reqqb\r\/$BOARD\r\r"
<br> sleep 1
<br> expect "刊 登 者"
<br> send "$CTRLP"
<br> expect "標題:"
<br> send "$TITLE\r"
<br> expect "設定:"
<br> send "\r"
<br> expect "時間"
<br> readfile
<br> sleep 24
<br> expect "Ctrl-Z"
<br> send "$CTRLX"
<br> sleep 1
<br> expect "編輯"
<br> send "\r"
<br> sleep 1
<br> expect "轉信"
<br> sleep 1
<br> send "\r\r"
<br> sleep 1
<br> send "eeg\r\r\r"
<br> sleep 1
<br> send "exit\r"
<br> sleep 1
<br> close
<br> send_user "\r\r\r\rPosting file completed.\r\r\r"
<br>
<br>
<br>
<br>--
<br>※ 來源:·BBS 水木清華站 bbs.net.tsinghua.edu.cn·[FROM: 159.226.41.99]
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -