获取unix';顶部';expect脚本的命令输出
全部,获取unix';顶部';expect脚本的命令输出,unix,expect,Unix,Expect,全部, 我想在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
我想在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"
当我执行这个时,我没有得到任何输出。执行unix语句的正确语法是什么?我如何让它工作,以便得到正确的rsize值作为输出 尝试使用ascii转义总是一个好主意,尝试\0442获取\$2或尝试\$2之类的内容 。此外,如果在第二行插入不带引号的“exp_internal 1”,您还可以调试脚本以查找没有输出的原因 是否可以在不添加“interact”语句的情况下获得输出 是的。等待输出的其他语句也会这样做;你可以加上e。g
expect -re "\n\[0-9]+"
到脚本末尾。Unix的哪个版本?登录并键入“mantop”,然后查看命令。另外,在serverfault.com上试试这个,那么您的top命令就可以了(至少在我的OS X上)-尝试删除$2上的\如果我删除了\我得到一个错误:无法读取“2”:在执行“set Mycmd”top-l 1-stats pid,rsize,command | grep Process | u Name | awk{print$2}时没有这样的变量“”仅供参考:top命令在我的Mac OSX上运行良好。我在执行expect脚本时没有得到输出,否则会得到什么输出?@Ed:我现在得到输出了。我修改了expect脚本,并在脚本末尾添加了“interact”。执行unix语句,我得到一个输出(顺便说一句,rsize是进程的驻留内存大小,输出类似于70M+,70M,70M-)。是否可以在不添加“interact”语句的情况下获得输出