期望脚本:如何期望文字 * 字符而不是 * 作为 glob 或正则表达式字符

期望脚本:如何期望文字 * 字符而不是 * 作为 glob 或正则表达式字符

我有一个 Expect 脚本,它会生成与 hunspell 的连接来检查单词的拼写。不幸的是,如果该单词在字典中,hunspell 只会发回一个 *。我怎么知道期望将其解释为一个字符而不是“任何东西”?

答案1

有两层:模式匹配器和 TCL。诀窍是反斜杠一个反斜杠,这样后续的星号在它向下穿过所涉及的层之后就不再特殊了。

#!/usr/bin/expect -f

#spawn echo "cat"
spawn echo "*"
expect {
    "cat" { set gots "dog" }
    "\\*" { set gots "star" }
}

puts $gots

相关内容