所有,
编辑
我想在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的含义,它控制着多less匹配。
结果被捕获后,您将需要查看结果
puts "$expect_out(buffer)"