我试图编写一个测试脚本,它将通过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年前,所以我确定我做错了什么......温柔。
答案 0 :(得分:0)
你正在混合shell和期望语法。你需要:
log_file $filename
send "<data access command>\r"
sleep [expr {$delay+5}]
但你的目标尚不清楚。 “同步”脚本在哪里?