linux expect中文,Linux expect用法介绍

linux expect中文,Linux expect用法介绍1 expect 是 linux 中一个交互命令 一般在 usr bin expect 路径下 如果该路径未加入到环境中需要先添加 其作用场景常用于交互执行输入指令常用命令 expect 获取上一命令执行后的返回信息 如果匹配成功则执行后续操作 spawn 交互程序开始后面跟命令 set 定义变量 puts

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 用法小记

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212116.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:48
下一篇 2026年3月18日 下午8:48


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号