expect取远程执行命令结果问题

justkings 2017-11-17 10:32:58
求教expect达人,如何将远程主机执行命令的结果赋值给变量
...全文
1110 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码誊写工 2017-12-02
  • 打赏
  • 举报
回复
expect -c "
spawn ssh root@192.168.1.1
expect \"yes/no\" { send \"yes\r\" exp_continue } \"password\" { send \"mypass\r\" }
expect \"\[root\" { send \"uuidgen; ls /; echo RET=\$?\r\"}
expect -re \"\[0-9a-z\]{8}-\[0-9a-z\]{4}-\[0-9a-z\]{4}-\[0-9a-z\]{4}-\[0-9a-z\]{12}.*RET=\[0-9\]+\" { set myvar \"\$expect_out(0,string)\" }
exec echo \$myvar | grep -vE \"\[0-9a-z\]{8}-\[0-9a-z\]{4}-\[0-9a-z\]{4}-\[0-9a-z\]{4}-\[0-9a-z\]{12}\" > /dev/shm/myvar
expect eof
"; myvar="$(cat /dev/shm/myvar)"; rm -f /dev/shm/myvar

echo "$myvar"
风轻云起 2017-12-01
  • 打赏
  • 举报
回复
直接用文本工具截取就行啊,或者你本地重定向到文件,然后抓取文件内容负值给变量
cqyy725 2017-11-27
  • 打赏
  • 举报
回复
这些结果都是死的,需要你自己去抓取。比如ssh登陆 expect { ”抓取的关键字“ set xxxxx }

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧