「文字列一致」と変数関連の問題

「文字列一致」と変数関連の問題

私は数時間検索し、いくつかのアプローチを試しました。これは機能すると予想されるコードの断片です。

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

おすすめ記事