我有一个通过tellnet参数化expect脚本
1 | #!/usr/bin/expect
2 | set timeout 10
3 | set ip [lindex $argv 0];
4 | set port [lindex $argv 1];
5 | log_file [lindex $argv 2];
6 | spawn telnet $ip $port
7 | expect "'^]'."
8 | sleep .1
9 | send "{\"INFO\":0}\0\r"
10| expect "}]}"
11| send "\35"
12| expect "telnet>"
13| send "q\r"
14| interact
这工作得很好,但我想参数化线9,但尽管我尽了最大努力,我不能让它工作与一些加热控件交互的脚本。这必须要看逃生如何运作。
理想的情况下我的新脚本如下所示:
#!/usr/bin/expect
set timeout 10
set ip [lindex $argv 0];
set port [lindex $argv 1];
log_file [lindex $argv 2];
set command [lindex $argv 3];
send_user $command;
spawn telnet $ip $port
expect "'^]'."
sleep .1
send "$command"
expect "}]}"
sleep .1
send "\35"
expect "telnet>"
send "q\r"
interact
,我会从像bash脚本调用它:
BASE_PATH=/usr/share/testing
LOG=$BASE_PATH/telnet.log
IP=10.10.10.5
PORT=4242
COMMAND="{\\\"INFO\\\":0}\0\r"
A_TEMP=`$BASE_PATH/telnet.sh $IP $PORT $LOG "$COMMAND"`
...
抱歉#错误地张贴了。 – user3262302
好的。如何调试信息?你可以发布吗? – Dinesh