Linux expect 介绍和用法二

expect是一个用来实现自动交互功能的工具,使用expect-send来实现交互过程。脚本的执行方法与bash shell不一样,如:expect example.sh

向一个脚本传递参数,bash shell是使用$1,$2...来接收参数的,而epxect则将脚本的执行参数保存在数组$argv中,在脚本中一般将其赋值给变量:set 变量名 [lindex $argv 参数]

实例:
写一个自动登陆远程主机的脚本,通过参数传递主机名,帐户,密码
1)编写脚本.

复制代码
#!/usr/bin/expect
set ip [lindex $argv 0]
set username [lindex $argv 1]
set passwd [lindex $argv 2]
spawn ssh -l $username $ip
expect {
        "yes/no" { send "yes\r";exp_continue }
        "password:" { send "$passwd\r" }
}
expect "]#" { send "df -Th\n" }
#expect eof
interact
复制代码

 注意:若登陆后便退出远程终端,则写expect eof即可.

执行脚本:

# expect example.sh 10.0.218.11 root LG_C7ntest-2988

 

参考文档:https://blog.csdn.net/summerviva/article/details/38375347

 

posted @   梦徒  阅读(298)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 分享4款.NET开源、免费、实用的商城系统
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
点击右上角即可分享
微信分享提示