gpt4 book ai didi

expect - Expect 的 "-r"命令中的 "expect -r PATTERN"是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:09 27 4
gpt4 key购买 nike

我已经查看了 Expect 联机帮助页并用 Google 搜索了它,但我还没有找到 expect 的 -r 是什么。我看到这个选项以前是这样用的

expect -r "\r\n\r\n"

expect 脚本中,但无法弄清楚它的用途。有谁知道我在哪里可以找到这个答案?提前致谢

最佳答案

当我看到有人在使用 expect -regexp PATTERN 时,这也让我有点困惑。因为在手册页中它只提到了 expect -re PATTERN .我试过 expect -regexp PATTERN它确实有效。

有时我下载了 Expect 的 source code并看了一下,找出了原因。

在源代码中(参见parse_expect_args()中的函数expect.c),expect的选项实际上定义如下:

static char *flags[] = {
"-glob", "-regexp", "-exact", "-notransfer", "-nocase",
"-i", "-indices", "-iread", "-timestamp", "-timeout",
"-nobrace", "--", (char *)0
}

然后在函数中调用TclTcl_GetIndexFromObj(interp, objPtr, tablePtr, msg, flags, indexPtr)解析命令选项。根据Tcl_GetIndexFromObj()manual :

... a match occurs if objPtr's string value is identical to one of the strings in tablePtr, or if it is a non-empty unique abbreviation for exactly one of the strings in tablePtr and the TCL_EXACT flag was not specified; ...

在这里Expect电话 Tcl_GetIndexFromObj()flags = 0 (没有 TCL_EXACT )所以记录的 -gl , -re-ex在手册页中实际上是 -glob , -regexp-exact分别。而且因为只有一个选项 -regexp-r 开始所以-r只是意味着与 -regexp 相同(和 -re )。

我个人建议仍然使用记录的选项以避免混淆其他人。

关于expect - Expect 的 "-r"命令中的 "expect -r PATTERN"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41473099/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com