python expect用法_expect用法

python expect用法_expect用法a spawn spawn 命令是 Expect 的初始命令 它用于启动一个进程 之后所有 expect 操作都在这个进程中进行 如果没有 spawn 语句 整个 expect 就无法再进行下去了 使用方法就像下面这样 在 spawn 命令后面 直接加上要启动的进程等信息 当然 如果真的不要 spawn 过程也没有关系 虽然这样就没有办法单独执行 但是这个脚本可以与任何调用它的进程进行交互 b expect exp

a) spawn: spawn命令是Expect的初始命令,它用于启动一个进程,之后所有expect操作都在这个进程中进行,如果没有spawn语句,整个expect就无法再进行下去了,使用方法就像下面这样:

在spawn命令后面,直接加上要启动的进程等信息。当然,如果真的不要spawn过程也没有关系,虽然这样就没有办法单独执行,但是这个脚本可以与任何调用它的进程进行交互。

b) expect: expect命令用于等候一个相匹配的输出,一旦匹配就执行后面的动作,这个命令接受几个特有参数,用的最多的就是-re,表示使用正则表达式的方式匹配。expect命令还有一种用法,它可以在一个expect匹配中同时匹配多个关键字,只需要将关键字放在一个大括号中就可以了:

expect  {

-re  “password:” {exp_send  “word\r”}

-re  “TopsecOS#” { }

}

一个相似的命令是expect_user,差异在于expect_user匹配用户的输入。

expect_user {

-re hello

{puts stdout “HELLO”; exp_continue}

}

这个代码段首先从用户那里获取输入,如果发现输入的是hello字符时,就会激活下面的动作,打印HELLO字符,因为exp_continue命令的存在,这个程序会一直循环下去。

c)  send:一般是expect中的动作命令,向进程发送输入内容,类似的是send_user表示把后面的内容输出到标准输出中,send_error表示输出到标准错误中。

d)  exp_continue:需处于expect的动作中,表示expect的匹配从头开始继续匹配。

e)  exit,close,wait:exit表示退出脚本,close表示立即关闭过程,而wait则是等待过程返回eof时关闭。

f)  interact:运行表示将控制权交给用户,与spawn生成的进程进行交互。由用户与spawn生成的进程进行交互,比如登录ftp服务器并下载的过程中,登录ftp服务器的过程可以由用户输入自己的用户名和密码,然后用户再输入q字符将控制权交给脚本,由脚本完成后面的交互动作。

#scp_files.sh

#!/bin/bash

ip=”192.168.210.132″local_file=$1remote_dir=”/data”

passwd=”BigData_2015″expect-c ” spawn scp$local_file bigdata@$ip:$remote_dir

expect {

\”Password:\” {send \”$passwd\n\”; exp_continue}

}”

#! /usr/bash

cd/data2/_bak_file

pattern=$1

ls -l ${pattern}|awk ‘{print $NF}’|whileread linedo

sh /data2/_bak_file/scp_files.sh$linedone

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

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

(0)
上一篇 2026年3月19日 下午8:53
下一篇 2026年3月19日 下午8:54


相关推荐

发表回复

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

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