Expect是在Tcl的基础上创建的,可以用来做一些Linux下无法做到交互的命令操作,可用于远程管理服务器。

一、安装Tcl:

1.下载源码包:

wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz

2.解压缩源码包:

tar xfvz tcl8.4.11-src.tar.gz

3.编译安装:

cd tcl8.4.11/unix
./configure --prefix=/usr/tcl --enable-shared
make
make install

4.安装完毕以后,进入tcl源代码的根目录,把子目录unix下面的tclUnixPort.h copy到子目录generic中。

二、安装expect:

1.下载源码包:
wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download

2.解压源码包:
tar xzvf expect5.45.tar.gz

3.安装配置:
cd expect5.45
./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/genericmake
make install

4.建立软连接:
ln -s /usr/tcl/bin/expect /usr/expect/bin/expect

三、expect语法及示例:

set命令:可以设置变量。

spawn命令:激活一个Unix程序来进行交互式的运行。

send命令:向进程发送字符串。

expect命令:等待进程的某些字符串。expect支持正规表达式并能同时等待多个字符串,并对每一个字符串执行不同的操作。

interact命令:执行完毕把持交互状态,然后在控制台继续操作。如果没有这一句,登陆之后就会退出,而不是留在终端上。

示例j脚本test.exp:

#!/usr/bin/expect

set HOST [192.168.11.11 $argv 0]

set PWD [123456 $argv 1]

spawn ssh root@$HOST

expect "*passwrod:"

send "$PWD\r"

expect "*#"

send "echo hello\r"

interact

修改权限:chmod 755 test.exp

执行:expect test.exp
————————————————
版权声明:本文为CSDN博主「lishuzebobo」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013181216/article/details/83055909

最新文章

  1. 【NLP】十分钟快览自然语言处理学习总结
  2. C# 给PDF文件添加水印
  3. Linux内核分析 第二周
  4. iOS通过手势拿到当前的View
  5. CSS常用样式(三)
  6. DOM、Window对象操作
  7. sql 数据量高并发的数据库优化(转)
  8. BZOJ1393 [Ceoi2008]knights
  9. odata
  10. OpenVPN多处理之-netns容器与iptables CLUSTER
  11. OpenSCAD 建模:矿泉水瓶花洒
  12. vue-cli3
  13. 在dotnetcore的MVC项目中,创建支持 vue.js 的最小工程模板
  14. oralce 常用sql
  15. java-vip介绍
  16. 莫烦keras学习自修第一天【keras的安装】
  17. mac安装pyspider报错
  18. JAVA之字母与相对应数字转换
  19. python的初始化运行了哪些?
  20. HBase RegionServer宕机处理恢复

热门文章

  1. python 私有和保护成员变量如何实现?—— "单下划线 " 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量;" 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据
  2. 使用matlab遇到的问题
  3. 解决Antimalware Service Executable CPU占用高的问题
  4. 第122题:买卖股票的最佳时机II
  5. C++处理异常
  6. js 相差年、月、日
  7. c语言实现整数转换为字符串——不考虑负数
  8. PAT乙级1045 快速排序
  9. 开放API接口安全处理
  10. [Flutter] Custom a Slider with SliderTheme