码迷,mamicode.com
首页 > 系统相关 > 详细

shell的expect命令

时间:2019-07-24 00:08:59      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:超过   匹配   word   roo   time   while   超时   登录   嵌入   

场景一:

#!/bin/expect
spawn su root
expect "password: "
send "123456\r"
expect eof
exit
 
场景二:用于bash中简单的交互
expect "*password*" {send "$password\r"}

场景三:嵌入bash中的多个expect交互
while :
do
    /usr/bin/expect << EOF
    set timeout 30  # 超时参数,默认单位为秒;超过30s则跳过expect;timeout -1 永不超时
    spawn ssh root@192.168.2.195
    expect {                       # 一个命令需要进行多次交互
        "(yes/no)?" { send "yes\r"; exp_continue }    # exp_continue:附加在expect语句后,同个expect语句中已匹配一项后,可以继续匹配其他项,例:"password:"
        "password:" { send "123456\r" }       # ‘\r‘一定要带
    }
    expect "*#"    # 登录节点后的在命令行上交互
    send "touch test.sh\r"
    expect "*#"
    send "exit\r"
    interact      # 执行完成后保持交互状态,可以手工操作。如果没有该命令,命令完成后即退出。
EOF
    sleep 5m
done

shell的expect命令

标签:超过   匹配   word   roo   time   while   超时   登录   嵌入   

原文地址:https://www.cnblogs.com/xuedu/p/11235031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!