expect传入参数和程序执行命令不成功问题


1.expect 关键字
send: 向进程发送字符串,用于模拟用户的输入。注意一定要加\r回车
expect: 从进程接收字符串
spawn: 启动进程(由spawn启动的进程的输出可以被expect所捕获)
interact: 用户交互
2.如何向expect脚本传入参数
set <变量名称> [lindex $argv <param index>]
1
注意下标从0开始,即0是第一个参数,不是脚本名称,这个和shell不同

#!/usr/bin/expect
set host [lindex $argv 0]  
set port [lindex $argv 1]  
set user [lindex $argv 2]  
set passwd [lindex $argv 3]  

3.程序中执行expect不成功
不要使用interact,如果在终端里执行expect,加上interact是没有问题的,但是在程序中执行命令,则不行;

spawn scp -r -P $port /root/dash/tool $user@$host:/tmp/
expect "*password:"
send "$passwd\r"
#interact
expect eof
exit

参考《Linux Expect 简介和使用实例》
 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值