1. expect介绍

expect时用与提供自动交互的工具(工作需要telnet/ssh自动登录远程设备并进行一些固定操作)。比如如果想要用ssh登陆服务器,每次都输入密码你觉得麻烦,那你就可以使用expect来做自动交互,这样的话就不用每次都输入密码了。

先看例子:

#!/usr/bin/expect

#set timeout 20 #设置超时时间
spawn ssh root@192.168.43.131

expect "*password:"

send "123\r"# expect "*#"

interact

解释:

1.#!/usr/bin/expect :需要先安装软件,然后来说明用expect来执行

2.spawn ssh root@192.168.43.131 :spawn是进入expect环境后才可以执行的expect内部命令,用来执行它后面的命令。

3.expect "*password:" :也是expect的内部命令,用来解惑关键的字符串,如果有,就会立即返回下面设置的内容,如果没有就看是否设置了超时时间。

4.send "123\r":这时执行交互式动作,与手工输入密码等效,在expect截获关键字之后,它就会输入send后面的内容。

5.interact :执行完毕后把持交互状态,把控制台,这时候就可以进行你想要进行的操作了。如果没有这一句,在登陆完成之后就会退出,而不是留在远程终端上。

2.源码下载

expect5.45.3.tar.gz:

https://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download

tcl8.6.8-src.tar.gz:

http://tcl.sourceforge.net/

也可以从CSDN下载。

新建目录soft,将下载的expect5.45.3.tar.gz、tcl8.6.8-src.tar.gz放在soft目录下。

3.交叉编译TCL

由于expect是基于tcl语言的,所以移植expect前,需先交叉编译tcl。

root@ubuntu:/home/hanyang/soft# tar zxf tcl8.6.8-src.tar.gz

root@ubuntu:/home/hanyang/soft# mkdir install_tcl

root@ubuntu:/home/hanyang/soft# cd tcl8.6.8/unix/

注意,/configure …… 之前应该先:

root@ubuntu:export tcl_cv_strtod_buggy=1

root@ubuntu:export ac_cv_func_strtod=yes

否则,交叉编译tcl时会出现以下错误(普通编译无此错误)

fixstrtod.o: In function `fixstrtod':

fixstrtod.c:(.text+0x0): multiple definition of `fixstrtod'

strtod.o:strtod.c:(.text+0x0): first defined here

root@ubuntu:/home/hanyang/soft/tcl8.6.8/unix#export CC=/home/hanyang/BRD_BSP_Version/export/brd_bsp/tools/ppc_gcc4.8.2_glibc2.18.0_multi/bin/ppce6500-hardfloat-linux-gnu-gcc

root@ubuntu:/home/hanyang/soft/tcl8.6.8/unix#

./configure --prefix=/home/hanyang/soft/install_tcl/ --host=powerpc

生成Makefile

(configure时留意一下是否有这句话,没有的话可能有问题checking for powerpc-gcc... /home/hanyang/BRD_BSP_Version/export/brd_bsp/tools/ppc_gcc4.8.2_glibc2.18.0_multi/bin/ppce6500-hardfloat-linux-gnu-gcc

root@ubuntu:/home/hanyang/soft/tcl8.6.8/unix# make

root@ubuntu:/home/hanyang/soft/tcl8.6.8/unix# make install

在/home/hanyang/soft/install_tcl/lib路径下获取libtcl8.6.sotcl8.6文件夹。

(file libtcl8.6.so 看一下是否是交叉编译运行在PowerPC下的 。)

4.编译expect

root@ubuntu:/home/hanyang/soft# tar zxf expect5.45.3.tar.gz

注意,expect不支持交叉编译,所以在configure,需要先用默认的X86 gcc编译,等configure后再修改Makefile

root@ubuntu:/home/hanyang/soft/expect5.45.3# ./configure  \

--prefix=/home/hanyang/soft/install_expect/   \

--with-tcl=/home/hanyang/soft/install_tcl/lib  \

--with-x=no                        \

--with-tclinclude=/home/hanyang/soft/install_tcl/include  \

1)--prefix=/home/hanyang/soft/install_expect/:指定安装目录
2)--with-tcl=/home/hanyang/soft/install_tcl/lib:指定tcl所在目录,通常指定为tcl安装目录下的lib路径
3)--with-x=no: 告诉配置脚本,不要查找 tk (tcl 的 GUI 组件) 或 X 窗口系统库
4)--with-tclinclude=/home/hanyang/soft/install_tcl/include:指定tcl头文件所在目录,通常指定为tcl安装目录下的include路径

(检查打印信息checking for gcc... gcc)

生成Makefile后,修改

CC=/../../ppce6500-hardfloat-linux-gnu-gcc

AR=/../../ppce6500-hardfloat-linux-gnu-ar

root@ubuntu:/home/hanyang/soft/expect5.45.3# make

root@ubuntu:/home/hanyang/soft/expect5.45.3# make install

make install会出现错误,可以不管,只要能正常编译生成expect和libexpect5.45.so即可

编译生成libexpect5.45.3.soexpect,file看一下是否是运行在PowerPC平台上的。

5.移植

expect                   -------------\usr\local\bin

libexpect5.45.3.so、libtcl8.6.so-------------\lib

tcl8.6                    ------------\usr\lib

调用expect,进入expect环境,说明安装成功。

expect移植到powerPC平台的过程相关推荐

  1. uboot移植到IMX6ULL平台详细过程

    uboot移植到IMX6ULL平台详细过程 文章目录 uboot移植到IMX6ULL平台详细过程 1.解压 2 编译 NXP 官方开发板对应的 uboot 3 烧写验证与驱动测试 1.SD 卡和 EM ...

  2. PowerPC平台 Linux移植二

    继PowerPC平台 Linux移植一,制作busybox文件系统,目的实现单板挂载nfs文件系统. 1.制作busybox文件系统 (1)交叉编译busybox a.make menuconfig ...

  3. oracle10g数据库复制,windows 下oracle 10G 数据库移植到 linux平台 (通过文件直接复制方法)...

    windows 下oracle 10G  数据库移植到 linux平台 (通过文件直接复制方法) 最近学习了一下oracle数据库启动原理,于是,就把在windows创建起来做测试的数据库 移植到li ...

  4. 《蜡烛人》制作人高鸣:如何原汁原味的将主机游戏移植到手机平台

    高鸣:大家好,我是高鸣,我是交典创艺的创始人也是游戏的制作人,准确地来说,我是这个团队里面的主程+主策.<蜡烛人>是比较有代表性的一款游戏,<蜡烛人>这款游戏基本上所有的代码都 ...

  5. 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(三)-移植到ESP32平台(1)

    相关系列文章 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用搭建 基于芯科Host-NCP解决方案的Zigbee 3.0 Gate ...

  6. 华为鲲鹏专家解读:90%代码如何移植到鲲鹏平台

    摘要:探讨一下软件移植到鲲鹏平台过程的原理,以及软件工程的相应的过程. Linux环境下跨平台软件移植过程中,需要开发者阅读代码.手工修改.反复编译和调试,移植周期长,效率低,那么如何改进周期长,效率 ...

  7. hadloop大数据平台论文_企业大数据平台建设过程中的问题和建议

    2 0 1 7 年 第 1 2 期 信 息 通 信 2017 (总第 180 期) INFORMATION & COMMUNICATIONS ( Sum . N o 180) 企业大数据平台建 ...

  8. linux mkfs 源码,mkfs工具怎么移植到嵌入式平台下面

    找到了e2fsprogs-1.41.3的源码,怎么修改编译后才能移植到嵌入式平台? 有交叉编译工具.但是不知道怎么修改Makefile文件 刚开始e2fsprogs的源码里没有Makefile文件 但 ...

  9. python是开源的它可以被移植到许多平台上对吗_Python程序设计答案

    [其它]编写一个 Python 程序,输出如下图形效果. ++++++++++ + + ++++++++++ 2. 根据输入的百分制成绩,输出其所对应的五级制成绩. 3. 根据输入的身份证号码,输出对 ...

  10. lua脚本移植到linux平台,如何将lua移植到arm平台的linux内核

    将脚本移植到内核是一件很酷的事情,lua已经被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核,只可惜只支持x86,不支持arm,在网上搜索了下,没有找到现成的 ...

最新文章

  1. 《.NET与设计模式》学习(一)
  2. HDU2594——Simpsons’ Hidden Talents
  3. 神策 2021 数据驱动大会丨北京主会场首日直播,拼团早鸟票特惠来袭
  4. python第二版第六章课后答案_《Python编程》第六章部分课后练习题
  5. 中的 终端报错怎么看原因_《琅琊榜》中太子被封禁,高湛引皇上看桂花的真正原因是什么?...
  6. sysbench压力工具报错:
  7. 这些Python骚操作,你知道吗?
  8. VIM和sed 替换字符串方法
  9. MACH SYSTEMS—总线接口转换工具
  10. H5调用摄像头拍照并下载照片
  11. 以前进行的程序安装创建了挂起的文件操作(SqlServer2000或SqlServer 2000 SP4补丁安装) .
  12. 时序分析/约束(一):相关概念
  13. lay-verify的失效情况
  14. java图片叠加_[原创]JAVA中图片上叠加文字的方法
  15. 云原生背景下的运维价值思考与实践
  16. 网站项目计划书的写法如何写网站设计策划书
  17. python音频特征提取_Python干货:如何使用Python对音频进行特征提取?
  18. 9部最值得一看的黑客电影
  19. django框架之中间件
  20. 大数据必知必会之Kafka

热门文章

  1. 编译与运行、解释程序与编译程序
  2. Android基础进阶
  3. 关于js执行机制的理解
  4. 客户端常见的几种数据传输方法
  5. redux之createStore
  6. 阿里云服务器 发送邮箱 STMP 25端口 465端口问题 Javamail 25被禁用
  7. Zabbix SNMP配置(学习笔记十九)
  8. Hadoop组件启动的三种方式及配置SSH无密码登入
  9. 深入 Java 调试体系: 第 1 部分,JPDA 体系概览
  10. 5个例子说明jQuery.extend(...)对象扩展工具方法