Expect脚本不会将date命令的bash替换扩展为send

时间:2012-07-29 08:06:55

标签: bash tcl expect

我有一个期望脚本来备份强大的VDOM防火墙。

除了基于日期输出的动态文件名外,这种方法效果很好。

这是剧本:

<!-- language: expect -->
#!/usr/bin/expect -f

##!/bin/bash
#DATE=$(date "+%Y.%m.%d")
#echo $DATE

set timeout 60
spawn ssh admin@vdom
expect "password: $"
set send_slow {1 0.05}
send -s "pass\r"
send_user "pass\r"
send -s "config global\n"
send -s "execute backup full-config tftp `date \"+%Y.%m.%d\"` ip.address\n"
send -s "exit\n"
interact

该脚本的结果如下: VDOM1 #execute backup full-config tftp date "+%Y.%m.%d" ip.address

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

好的,我得到了关于IRC问题的答案(信贷是给Venks):

`在tcl中并不特别。 这样做的正确方法如下:

send -s "execute backup full-config tftp [clock format [clock seconds] -format %Y.%m.%d] xxx.xxx.xxx.xxx\n"

希望这有助于将来。