项目里面用到expect登录一台主机
口令是BI_wgjk_#@!
用
#$exp->send('BI_wgjk_#@!'."/n"); #错误
#$exp->send('BI_wgjk_#/@!'."/n"); #正确
$exp->send("BI_wgjk_#///@!/n"); #正确
可以看到expect对于perl的特殊字符@ 的处理,不是透明的
即使用了单引号也不行,必须加一次转义
如果用双引号,则需要转义2次
类似的还有$和%
注:
对expect/net::telnet的send/print和waitfor方法都是这样