我想从文件中grep ipaddress并将其设置为expect scritp中的变量
send -- "cat $filename |grep ([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\})\r"
expect -re "([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}) *$prompt$"
set IP $expect_out(1,string)
但我没有成功。任何的想法?我正在使用/ usr / local / bin / expect。感谢
答案 0 :(得分:1)
从快速扫描来看,在我看来,你试图在你的陈述中匹配双提示。在期望正则表达式结束时,您似乎有一个变量后跟一个文字提示符。你确定那是你想要的吗?
除此之外,我强烈建议您将expect_internal 1
放在脚本顶部的某个位置,这样期望会记录输出,显示它匹配的内容(而不是)。如果没有它,你真的不应该尝试调试regexp匹配,就像在黑暗中搜索一样......