"문자열 일치" 및 변수 관련 문제

"문자열 일치" 및 변수 관련 문제

나는 몇 시간 동안 검색하고 여러 가지 접근 방식을 시도했습니다. 이는 작동할 것으로 예상되는 코드 조각입니다.

         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

별표가 없는 "단어"와 양쪽 끝에 별표가 있는 "단어"는 작동하지 않습니다. 명령줄에 제공되는 변수여야 합니다. 변수와 함께 작동하는 조합을 찾지 못했습니다.

작동하도록 제안해 주세요.

답변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"
            }
         }

관련 정보