1.背景

在面向shell编程时对于需要交互的场合则必须通过人工来干预,而对于这种方式是违反无人职守的原则;现在expect就解决了这个问题,

Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。

Expect是在Tcl基础上创建起来的,用来做一些linux下无法做到交互的一些命令操作,在远程管 理方面发挥很大的作用。

spawn命令激活一个Unix程序来进行交互式的运行。 
    send命令向进程发送字符串。
    expect 命令等待进程的某些字符串。 
    expect支持正规表达式并能同时等待多个字符串,并对每一个字符串执行不同的操作。

2.安装

在安装expect之前需要先安装TCL(最早称为“工具命令语言”"Tool Command Language", 但是目前已经不是这个含义,不过我们仍然称呼它为TCL)是一种 脚本语言。

这里使用的安装包:tcl8.4.20-src.tar.gz 和 expect5.45.tar.gz

tar  zxvf  tcl8.4.20-src.tar

cd  tcl8.4.20

./configure --prefix=/usr/local/tcl --enable-shared

make

make install

TCL安装完毕,下面安装expect

tar  zxvf  expect5.45.tar.gz

cd  expect5.45

./configure --prefix=/usr/local/expect

make

make install

expect到此就安装结束了,expect的安装目录在/usr/local/expect;但可执行文件却不在该目录下,我们可以使用find命令来查找,如:find / -name expect

一般情况下,expect与tcl在一起的,我的存放的地方在:/usr/local/tcl/bin/expect ;如果觉得这个路径太长或者不合,可以使用软链接到你想的位子上。

3.代码验证

ScpStart()
{

line=11.22.33.44    #IP地址
    /usr/local/bin/expect << EOF
    set time 20
    spawn scp -r /opt/upProtocol/ptcBinPacket root@$line:/opt
    expect {
        "*yes/no*"
        { send "yes\r";exp_continue }
        "*password:"
        { send "xxxxxx\r"}
    }
    expect eof
EOF

if [ $? -eq 0 ]
then
    echo "复制文件到$line成功!"
else
    echo "复制文件到$line失败!"
fi
}

CentOS6.3上搭建expect无交互开发环境的更多相关文章

  1. 转:WIN7上搭建Windows Phone 8 开发环境——VMware Workstation下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法

    转自:http://www.cnblogs.com/shaddock2013/p/3155024.html 最近在试着在Windows 7上搭建Windows Phone 8的开发调试环境,使用的是V ...

  2. WIN7上搭建Windows Phone 8 开发环境——VMware Workstation下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法

    最近在试着在Windows 7上搭建Windows Phone 8的开发调试环境,使用的是VMware Workstation + Win8 Pro的虚拟环境, 在漫长的WPexpress_full下 ...

  3. 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!

    今年微软Build 2016大会最让开发人员兴奋的消息之一,就是在Windows上可以原生运行Linux bash,对开发人员来说,这是一个喜闻乐见的消息. 1 安装 你必须安装开发者预览版本,才能使 ...

  4. 在Windows7上搭建Cocos2d-x 3.2alpha0开发环境

    在windows7上搭建COCOS2D-X开发环境并不难, 但是由于框架更新过快,很多用户都有困难.我希望你们认为这个教程有用. 建议:为了避免安全相关的问题,请以管理员权限执行所有的操作,当运行命令 ...

  5. 在Eclipse上搭建Cocos2d-x的Android开发环境

    很多其它相关内容请查看本人博客:http://www.bokeyi.com/ll/category/cocos2d-x/ 本文的搭建方法是最新最正确的方法,好多朋友反映搭建eclipse交叉编译环境非 ...

  6. 图文教程:在Mac上搭建Titanium的iOS开发环境

    http://mobile.51cto.com/web-317170_all.htm 跨平台开发工具Titanium的兴起之路:HTML 5是最大威胁 比较Titanium和PhoneGap两大iOS ...

  7. 树莓派上搭建arduino命令行开发环境

    -------------还是博客园上面的格式看这舒服,不去新浪了------------- 为什么要在树莓派上开发arduino呢?总要把树莓派用起来嘛,不然老吃灰. 树莓派使用SSH时没有图形界面 ...

  8. 用VirtualBox和vagrant在win7&#215;64上搭建ruby on rails 开发环境

    下载准备 1.vagrant 官方  WINDOWS Universal (32 and 64-bit) http://www.vagrantup.com/downloads.html 2.Virtu ...

  9. 基于腾讯云的Centos6.2系统搭建Apache+Mysql+PHP开发环境

    搭建环境,我肯定需要先购买腾讯云服务器的哦! 然后,我们打开SecureCRT 7.3,这是一款可以连接Linux系统的客户端工具,使用的很方便快捷,要注意的是,若你是Linux系统的就要用22端口, ...

随机推荐

  1. freemaker学习

    1,依赖 <!-- Spring Boot Freemarker 依赖 --><dependency> <groupId>org.springframework.b ...

  2. Spring Boot 全局异常处理

    Spring Boot版本 1.5 @ControllerAdvice public class GlobalExceptionHandler extends ResponseEntityExcept ...

  3. 多线程shell脚本检测主机存活

    局域网中分了很多网段,而IP地址使用情况也未知,前期也没有规划和记录,当新的主机需要使用固定IP的时候,能否第一时间知道哪个IP空闲就显得很重要了,如果一个一个去ping的话太浪费时间. 这里分享一个 ...

  4. Android studio 中添加依赖model时依赖所需的准备

    例如向app中添加依赖core: core要做如下修改: 1.将core中build.gradle中   修改为  . 2.将core中的 applicationId 注释掉.

  5. cocos2dx lua invalid 'cobj' in function 'lua_cocos2dx'

    解决方法 在创建 Node节点后 调用父节点 retain() 方法 手动增加引用 一般调用:clone()方法会出现,在变量后面加上对一个对应的retain() 方法

  6. Robot Framework脚本在jenkins执行完之后无法查看日志

    首先确保Robot Framework Plugin已经安装好,构建结束后test result和log.html等日志文件已显示,只是无法打开查看: 修改tomcat配置:vi tomcat/con ...

  7. 分类问题的几个评价指标(Precision、Recall、F1-Score、Micro-F1、Macro-F1

    轉自 https://blog.csdn.net/sinat_28576553/article/details/80258619 四个基本概念TP.True Positive   真阳性:预测为正,实 ...

  8. C#中CefSharp的简单使用

    1. 创建32位winform项目 必须指定32位或64位 这里使用32位 2. 下载CefSharp相关文件 3. 复制CefSharp相关文件到项目debug目录并添加引用 https://blo ...

  9. SQL脚本--总耗CPU最多的前个SQL --平均耗CPU最多的前个SQL

    --总耗CPU最多的前个SQL SELECT TOP 20 total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.t ...

  10. Listen and Write 18th Feb 2019

    Weighted blanket has becomes very popular in many homes. they claim it can provide better sleep and ...