0

show-table[0]を取得すると、 が出力されるシステムがあります0|-100|111

私の期待スクリプトが$row引数として受け取り、次のことをしたい:

  1. 送信show-table[$row]

  2. 値を返します-100(100も良いでしょう)

これが私が試したことです:

set row [lindex $argv 0]

expect {
    "> " {send "show-table\[$row\]\n"}
    timeout { exit 1 }
}

expect {
    "\|*\|" {}
    timeout { exit 1 }
}

exit $expect_out(0,string)

2 つの問題:

  1. スクリプトに渡す引数を探すことができませんでした
  2. スクリプトが-100または100のみを返すように管理していませんでした

なにか提案を?

4

1 に答える 1

0
  1. スクリプトに引数を渡す方法は正しいようです。
  2. expect -reコマンドを送信した後、コマンドの出力を照合するために使用できます。

    行を設定 [lindex $argv 0]

    期待 { "> " {send "show-table[$row]\n"} タイムアウト { exit 1 } }

    expect -re {\d+\|(-?\d+)\|\d+} { puts $expect_out(1,string) }

    eofを期待する

このスクリプト出力をシェルに戻したい場合は、単純にputsfrom expectcan do it を実行すると、exitこのスクリプトの終了ステータスが表示されます。

于 2012-09-10T03:33:06.937 に答える