“字符串匹配”和变量的问题

“字符串匹配”和变量的问题

我已经搜索了几个小时并尝试了多种方法。这是预期有效的代码片段。

         foreach line [split $expect_out(buffer) \r\n] {
            if {[string match {*word*} $line]} {
               send_user "$line\r\n"
               set acctnum [exec echo $line | cut -d\. -f1]
               send_user "$acctnum\n\r"
            }
         }

输出是:

2. word
2

不带星号的“word”和两端带有星号的“word”不起作用。我需要它是命令行上提供的变量。我发现没有任何组合可以与变量一起使用。

请提供建议以使其发挥作用。

答案1

我在中找到了答案在 Expect 脚本中将字符串与子字符串进行匹配。我相信我之前已经看过这个问题,但没有仔细阅读。答案是用双引号替换大括号。

         foreach line [split $expect_out(buffer) \r\n] {
            if {[string match "*$varname*" $line]} {
               send_user "$line\r\n"
               set acctnum [exec echo $line | cut -d\. -f1]
               send_user "$acctnum\n\r"
            }
         }

相关内容