Linux中的expect命令操作实例

Linux系统中的expect是一个用于实现自动交互式的命令,一般情况下,在执行某些命令、脚本或者程序时,需要我们手动从终端输入交互指令后才能继续执行,而expect则可以根据交互的提示,模拟标准输入,最终实现自动化交互。

expect基础知识

安装expect

yum -y install expect

使用前说明

# 创建脚本

vim expect.exp

# 赋权

chmod +x expect.exp

# 执行方法

./expect.exp

常用参数

参数 功能
send 向进程发送字符串
expect 从进程接收字符串
spawn 启动新的进程
interact 允许用户交互

实例

远程登录

#!/usr/bin/expect

set hostname "10.10.200.200"
set username "myname"
set password "MyPassword"

spawn ssh $username@$hostname
expect {
"yes/no" {send "yes\r"; exp_continue}
"password:" {send "$password\r"}
}
interact

切换用户

#!/usr/bin/expect -f

spawn su - Uman
expect "*password*"
send "UpassWord\r"
interact

执行命令

#!/usr/bin/expect

set hostname "10.10.200.200"
set username "myroot"
set password "MyPassword"

spawn ssh $username@$hostname
expect {
"yes/no" {send "yes\r"; exp_continue}
"password:" {send "$password\r"}
}

expect "]*"
send "cd /opt\r"
expect "opt]*"
send "echo 1234 > 12.txt\r"
expect "]*\r"
send "exit\r"
赞 (1) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

感谢您的支持与帮助

支付宝扫一扫打赏

微信扫一扫打赏