Unix
從 Expect 腳本獲取 unix ’top’ 命令輸出
全部,
編輯
我想在 Expect 腳本中執行一個 unix 語句並獲得輸出,而不必包含互動語句。unix 語句輸出程序的 rsize 值。我以前沒有在 Expect 中程式過。這是我的程式碼:
#!/usr/bin/expect set some_host "some host" set Mycmd "top -l 1 -stats pid,rsize,command | grep Process_Name| awk '{print \$2};'" spawn telnet localhost $some_host expect "login:" send "myDevice\r" expect "Password:" send "$password\r" expect "\$" send "$Mycmd\r" interact
如果我不包括互動語句,我不會得到任何輸出。我如何讓它工作,以便我得到正確的 rsize 值作為輸出?
為什麼不只使用 的輸出
ps
?$ ps -p <pid> -o rss | egrep '[0-9]'
遠端,您可以通過 ssh 執行此操作:
$ ssh user@host ps -p <pid> -o rss | egrep '[0-9]'
您可以使用這些方法中的任何一種,每種方法的結果都略有不同。
expect -re "*\n" expect expect "%"
您還應該查看
match_max
哪些控制將匹配多少的含義。擷取結果後,您將要查看結果
puts "$expect_out(buffer)"
請參閱http://en.wikipedia.org/wiki/Expect以獲得一些很好的範例。