CentOS6.3上搭建expect无交互开发环境

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()
{
    /usr/local/bin/expect << EOF
    set time 20
    spawn scp -r /opt/upProtocol/ptcBinPacket [email protected]$line:/opt
    expect {
        "*yes/no*"
        { send "yes\r";exp_continue }
        "*password:"
        { send "autotest\r"}
    }
    expect eof
EOF

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

时间: 2024-12-24 23:43:05

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

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

http://mobile.51cto.com/web-317170_all.htm 跨平台开发工具Titanium的兴起之路:HTML 5是最大威胁 比较Titanium和PhoneGap两大iOS移动应用开发框架 跨平台移动Web开发工具 Titanium Mobile简介 图文教程:在Windows 7上搭建Titanium Mobile开发环境 Titanium架构分析图文教程:在Mac上搭建Titanium的iOS开发环境,码迷,mamicode.com

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

很多其它相关内容请查看本人博客:http://www.bokeyi.com/ll/category/cocos2d-x/ 本文的搭建方法是最新最正确的方法,好多朋友反映搭建eclipse交叉编译环境非常复杂又头疼,事实上仅仅是网上的资料太过零散,差一步而谬之千里啊,不多说,假设你看了这篇文章,恭喜你,你省下了至少48小时的生命. 我的操作系统:WIN7 Eclipse版本号:eclipse-jee-kepler-SR2-win32 Cocos2d-x版本号:2.2.3 一.Android环境搭建

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

在windows7上搭建COCOS2D-X开发环境并不难, 但是由于框架更新过快,很多用户都有困难.我希望你们认为这个教程有用. 建议:为了避免安全相关的问题,请以管理员权限执行所有的操作,当运行命令的时候,也要确保之前是以管理员权限打开了命令行窗口. 工具准备 搭建开发环境需要安装工具包括 Visual Studio python ———(本教程以python2.7.3版本为例),下载地址:http://www.python.org/download/releases/2.7.3/. Coco

win7上搭建ruby on rails 开发环境

对于接触一种新技术.新语言的新手来说,搭建学习环境永远是个艰难的话题,尤其是在国内这种网络下,难度更是大增. 在经历了大约十多个小时的艰苦奋战后,本人终于在win7搭建成功ruby+rails+mysql环境,本文没有详细的步骤,折腾的时候根本没闲情截图写博客,同时也根本不想再折腾一遍,写本文的初衷只是想给即将和还在折腾童鞋建议. 上策:不要在win7上折腾: 可以使用MAC OS.Linux上搭建这个环境难度相对很小,遇到问题解决方法也很简单.或者搭建虚拟机也是建议的方式. 中策:ruby+r

如何在win7上搭建Android cocos2d-x-3.3开发环境

1. 搭建开发环境需要安装的工具: A. Visual Studio 2012 B. Cocos2d-x-3.3版本 C. Java JDK 1.7 D. Android SDK E. Android NDK 2. 下载Visual Studio 2012并安装(下载地址为:https://msdn.microsoft.com/library/dd831853(v=vs.110).aspx) 3. 下载Cocos2d-x-3.3版本的游戏引擎 用户可登录cocos2d-x官网下载3.x系列的co

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

搭建环境,我肯定需要先购买腾讯云服务器的哦! 然后,我们打开SecureCRT 7.3,这是一款可以连接Linux系统的客户端工具,使用的很方便快捷,要注意的是,若你是Linux系统的就要用22端口,其它就是host和用户名密码了,这些直接输入就可以! 步骤如下: 一.安装Apache.PHP.MySQL.连接Mysql数据库的包: yum -y install httpd php mysql mysql-server php-mysql 二.安装Apache常用拓展包: yum -y inst

史上最简单的Ubuntu上搭建java和Android开发环境

在Ubuntu下搭建java环境和Android环境: 1.搭建java环境请参考他:搭建java环境步骤 2.当java环境搭建好了之后,下载(sdk+adt+eclipse),链接地址:包含(adt+sdk+eclipse) 下载完了,只需解压. 推荐看看:国内SDK+Eclipse+ADT下载地址 3.配置.bashrc: sudo gedit .bashrc  (在你的用户主目录下执行) export JAVA_HOME=/xx/Android/jdk1.7(jdk安装目录) expor

react-native —— 在Mac上搭建React Native Android开发环境

需要:JDK,Android SDK,Node.js 1.安装JDK 去Java官网下载列表选择Mac OS X x64版 2.安装Android SDK 虽然现在谷歌推荐使用Android Studio,但是我还是选择了单独安装Android SDK. 这是一个比较全的目录,上面的链接是官方的,有wall,用下面的基本都是网盘资源,速度还可以,记得修改Android SDK在线更新镜像服务器. PS:在Android SDK Manager里要装API 23的 安装完成后,一定要设置环境变量:

在 Mac 上搭建 Nginx PHP Mysql 开发环境

其实这个过程跟Linux下安装都差不多,只是部分命令有差别,大同小异. 网上看到很多教程都是用 brew 之类的包管理器安装,但是 Mac 自带了 php , 难道还要再装一个第三方的?强迫症果断不能忍,于是就想利用自带的 php-fpm 来搭建,没想到一搭建就是两个小时,在这里把过程整理一下备用,同时也方便需要的人. 因为是调试环境,所以没有注重安全方面,有些东西直接 chmod 777 了 要用于ws的话还是改改吧. 下载 nginx 源代码 并开始编译 tar zxvf nginx.tar