1

Expectスクリプトを使用して、ホストの合計メモリを取得したいと思います。LINUX/EXPECTを使用したホストのGetTotalMemoryで受け取った回答のおかげで、最終的な解決策に近づきました。(glenn jackmanSorpigalに感謝します)。

ホストに接続した後、次の行を実行します。

send "cat /proc/meminfo | grep MemTotal | awk '{print \$2}'\r"

必要な値を返しますが、に含まれている値を取得する$expect_out(buffer)と、送信文や前後のコマンドプロンプトフラグなど、必要以上の情報が含まれています。私は正確に次を使用して、次を取得しますexp_internal 1

expect: set expect_out(buffer) "17# cat /proc/meminfo | grep MemTotal | awk '{print $2}'\r\n34150400\r\nCBA"

終わり近くの数字だけを抽出したい34150400。ヒントやアイデアはありますか?

4

1 に答える 1

2
regexp "\n(\[0-9]+)" $expect_out(buffer) - num
puts $num   ;# => 34150400

ちなみに、シェルコマンドを送信せずにこれを行うことができます:

set fid [open /proc/meminfo]
while {[gets $fid line] != -1} {
    if {[regexp {^MemTotal: *(\d+)} $line - memtotal]} {
        break
    }
}
close $fid
puts $memtotal
于 2012-04-24T15:30:18.907 に答える