linux expect中文,Linux expect用法介绍

1.expect是linux中一个交互命令,一般在 /usr/bin/expect路径下,如果该路径未加入到环境中需要先添加,其作用场景常用于交互执行输入指令

常用命令:

expect 获取上一命令执行后的返回信息,如果匹配成功 则执行后续操作

spawn 交互程序开始后面跟命令

set 定义变量

puts 输出变量

set timeout 设置超时时间

send    用于发送字符串或者命令

exit 退出expect脚本

eof expect执行结束 退出

interact 结束

2.实例

需求1描述:在没有ssh密钥认证时,scp远程复制到目标主机需要每次输入密码,这里使用expect免去手动输入密码的操作

主流程脚本:

#!/bin/sh

expect /home/sendUtil.sh 参数1 参数2 参数3 参数4

远程复制scp脚本:

#!/usr/bin/expect

#获取参数并设置局部变量

set timeout 15

set BASE_PATH [lindex $argv 0]

set FILE_NAME [lindex $argv 1]

set IP [lindex $argv 2]

set TARGET_PATH [lindex $argv 3]

#执行scp操作

spawn scp -P 16022 ${BASE_PATH}/target/$FILE_NAME user@$IP:$TARGET_PATH

#匹配到输入密码提示

expect "\*assword\*"

#发送密码

send "Password\r"

#结束交互

interact

需求1描述:在没有ssh密钥认证时,sftp到远程主机,切换到指定目录,并将目录下所有文件下载到本地

主脚本和上面一样

sftp脚本:

#!/usr/bin/expect

spawn sftp -oPort=16022 sftp@192.168.12.32

expect "\*assword\*"

send "Password\r"

expect "\*sftp\*"

send "cd /user/download\r"

expect "\*sftp\*"

send "get -r *\r"

interact

[转载]expect spawn、linux expect 用法小记

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值