在同时运行shell脚本的同时从telnet连接中提取数据

时间:2015-01-27 16:47:23

标签: shell telnet

我试图编写一个测试脚本,它将通过telnet访问我的测试设备,同时运行一个shell脚本,自动执行我测试的其他部分。自动化部分已完成,但我在测试运行时正确打开telnet连接并保存数据时出现问题。

下面是我的测试shell脚本和它引用的expect脚本

#! /bin/bash

declare -r telnetip=1.1.1.2
declare -r username=root
declare -r filename=telnettest.txt
declare -r runTime=10
./telnet.exp $telnetip $username $filename $runTime #telnet script
./tot.sh #automation script

#! /usr/bin/expect -f

set base_dir [lindex $argv 0]
set user [lindex $argv 1]
set filename [lindex $argv 2]
set delay [lindex $argv 3]

spawn telnet 
expect "telnet> "
send "open $base_dir\r"
expect "Trying 1.1.1.2..."
expect "Connected to 1.1.1.2"
expect "Escape character is '^]'. "
expect "soc1 login:"
send "$user\r"
sleep 2
expect "*$*"
send "<data access command>\r" > $filename
sleep delay+5

运行上述内容时出现此错误:

usage: send [args] string
    while executing
"send "<data access command>\r" > $filename"
    (file "./telnet.exp" line 18)

我最近涉及Unix的事情发生在14年前,所以我确定我做错了什么......温柔。

1 个答案:

答案 0 :(得分:0)

你正在混合shell和期望语法。你需要:

log_file $filename
send "<data access command>\r"
sleep [expr {$delay+5}]

但你的目标尚不清楚。 “同步”脚本在哪里?