让我说我有类似......
set timeout 10
expect {
"login:" {
send "$USER\r"
exp_continue
}
"assword:" {
send "$PASSWORD\r"
exp_continue
}
$PROMPT {
send_user "Successfully logged in."
}
}
我在定义$ PROMPT
时遇到问题所有这些都给出了错误......
set PROMPT {-re ">|:"}
set PROMPT "-re \">|:\""
set PROMPT {-regexp ">|:"}
我得到的错误就像......
bad flag "-regexp ":|>"": must be -glob, -regexp, -exact, -notransfer, -nocase, -i, -indices, -iread, -timestamp, -timeout, -nobrace, or --
分配变量的正确方法是什么?(更重要的是)我为此错误发生的违反概念是什么?
提前感谢你!
答案 0 :(得分:1)
你应该这样写:
set PROMPT {>|:}
expect {
-re $PROMPT { ... }
...
}
为了更安全,您最好定义更精确的PROMPT
,因为某些命令也可能会输出>
或:
等字符。