【发布时间】:2015-05-09 11:13:04
【问题描述】:
我正在尝试编写脚本以将文件传输到另一台设备。由于我无法解释可能发生的所有错误,因此我试图做出 if-all-else 失败的情况:
spawn scp filename login@ip:filename
expect "word:"
send "password"
expect {
"100" {
puts "success"
} "\*" {
puts "Failed"
}
}
这总是返回一个失败的消息,甚至不传输文件,就像这段代码:
spawn scp filename login@ip:filename
expect "word:"
send "password"
expect "100"
puts "success"
显示文件的传输并打印成功消息。
我无法理解我在第一段代码中的 if-expect 语句有什么问题。
【问题讨论】:
-
你能告诉我你为什么使用
\*吗?你打算匹配文字美元符号吗? -
我认为它会像一个 if-else 语句一样,如果它匹配 100,它就会跳出来。否则,如果没有 100,则将其视为错误,因此将打印失败
-
@Dinesh
*被称为星号。$是美元符号。 -
@Jerry:谢谢。现在更正了。