我正在尝试匹配提示,但是括号(%|#)
中的OR语句不起作用。
以下内容仅适用于%结束提示,而不适用于#结束提示:
set FULLPROMPT "${HOST} (.+)(%|#) $"
以下对于任何提示都不起作用:/:
set FULLPROMPT "${HOST} (.+)% $"
我显然缺少一些东西。
提示可能是这样
12:33 user@hostname ~%
12:33 root@hostname /usr/local/folder#
期望的运行方式
set HOST "hostname"
set FULLPROMPT "${HOST} (.+)(%|#) $"
send "\n"
expect -re $FULLPROMPT
任何帮助将不胜感激
答案 0 :(得分:2)
感谢Schelte Bron,我现在可以确切地看到正则表达式如何与提示匹配。
事实证明,提示带有颜色,并且在%
或#
之前和之后都放置了各种字符。
要克服这一点,您可以
在调试模式下运行期望:
expect -d