shell中的交互模式:expect
在shell开发中,我们连接FTP或者passwd或sudo等操作时,需要手动输入密码。对于自动化而言,这显然是不合适的。而expect的强交互模式解决了这个问题。工作中偶有涉及到这个,个人也是简单的了解,解决实际问题,作学习记录。
一:安装【参考地址:https://www.cnblogs.com/lixigang/articles/4849527.html】
expect需要Tcl编程语言的支持,所以expect需要安装两个东西。一个tcl,一个expect;[安装前,可通过 "which/whereis expect"判断服务器是否已安装]
1、tcl下载与安装
#!/usr/bin/expect
set timeout
set passwd {9m[S)UWe4r}
spawn su root
expect {
"password" { send "$passwd\r";exp_continue }
"Password" { send "$passwd\r";exp_continue }
eof {;}
}
exec sleep
expect {
"#" send{"touch tt\r"}
eof {;}
}
expect eof
1、#!/usr/bin/expect
shell中的交互模式:expect的更多相关文章
- shell 中scp密码输入 --expect
这里必须先安装: yum install expect -y expect是一种自动交互语言,能实现在shell脚本中为scp和ssh等自动输入密码自动登录. 下面给出scp和ssh的使用示例: 1. ...
- matplotlib交互模式与pacharm单独Figure设置
matplotlib交互模式与pacharm单独Figure设置 觉得有用的话,欢迎一起讨论相互学习~Follow Me Matpotlib交互模式 在运行python程序时有时候需要生成以下的 动态 ...
- linux shell执行中需要交互输入回车,Yes/NO Y/N
最近写自动安装脚本遇到redis-server安装的时候,需要输入3个回车,对此尝试无果,最后google比较满意的解决办法: shell 脚本需要交互,比如输入回车,输入YES/NO Y/N之类进行 ...
- shell脚本交互:expect学习笔记及实例详解
最近项目需求,需要写一些shell脚本交互,管道不够用时,expect可以很好的实现脚本之间交互,搜索资料,发现网上好多文章都是转载的,觉得这篇文章还不错,所以简单修改之后拿过来和大家分享一下~ 1. ...
- shell中交互输入自动化
shell中交互输入自动化 shell中有时我们需要交互,但是呢我们又不想每次从stdin输入,想让其自动化,这时我们就要使shell交互输入自动化了.这个功能很有用的哟.好好学习. 1 利用重 ...
- shell 中的expect 用法
expect一般用于实现用脚本来自动远程登录,对远程机器执行相关操作 测试机上的expect目录一般在/usr/bin/expect路径 下面是从网上查询的用法总结: 1. expect中的判断语句: ...
- Shell 编程 免交互 expect
本篇主要写一些shell脚本免交互expect的使用. 概述 Expect是建立在tcl基础上的一个工具,Expect 是用来进行自动化控制和测试的工具.主要解决shell脚本中不可交互的问题. 安装 ...
- shell中使用expect命令进行远程执行命令脚本
expect是用来实现自动交互功能的工具之一,使用expect-send来实现交互过程. 注意: 1.脚本的执行方法与bash shell不一样,比如:expect example.sh 2.向一个脚 ...
- linux自动化交互脚本expect详解set timeout 5是 意思是在expect语句中,5s后超时,不再作出选择。
linux自动化交互脚本expect详解 更新时间:2020年10月21日 10:13:20 作者:lendsomething 这篇文章主要介绍了linux自动化交互脚本expect的相 ...
随机推荐
- 【1】Django概述
道生一,一生二,二生三,三生万物 无名天地之始,有名万物之母 ——老子 python程序web项目开发,是非常重要的一部分,Python为基础的web项目开发的框架有很多,django无疑是最强大we ...
- springboot整合mybatis统一配置bean的别名
mybatis.type-aliases-package=cn.byzt.bean 只需要将 javaBean 的路径配置到 springboot 的配置文件中,这里如果是多个路径,用英文逗号分隔多个 ...
- 【 Codeforces Round #519 by Botan Investments B】Lost Array
[链接] 我是链接,点我呀:) [题意] [题解] 枚举k 不难根据a得到x[0..k-1] 然后再根据a[k+1..n]来验证一下得到的x是否正确就好. [代码] #include <bits ...
- How many integers can you find
How many integers can you find Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 ...
- eclipse实现批量修改文件的编码方式
http://blog.csdn.net/haorengoodman/article/details/38493007 在eclipse+MyEclipse环境下,打开一个jsp文件,经常发现汉字无法 ...
- 【日常学习】【搜索/递归】codevs2802 二的幂次方题解
转载请注明出处 [ametake版权全部]http://blog.csdn.net/ametake欢迎来看 题目描写叙述 Description 不论什么一个正整数都能够用2的幂次方表示. 比如:13 ...
- POJ 2068
就是必胜点与必败点的计算而已.计算每一种情况.设st[i][j]为在第i个人剩下j个石头时的情况,拿它转移后的情况比较.可以到达必败点,则当前为必胜点.若只能到达必胜点,则当前点为必败点. #incl ...
- chcp - 设置或者显示活动代码页编号
chcp - 设置或者显示活动代码页编号 学习了:https://baike.baidu.com/item/CHCP/9061635?fr=aladdin
- hdu - 3498 - whosyourdaddy(反复覆盖DLX)
题意:N(2 ≤ N ≤ 55)个点,M(0 ≤ M ≤ N*N)条无向边,删除一个点会把与其相邻的点一起删掉.问最少删几次能够删掉全部点. 题目链接:pid=3498">http:/ ...
- 安装多个版本号jdk后java -version不改变的问题解决
1.问题 比方先安装了jdk7后,再安装jdk6,java -version就是显示java1.6,即使把JAVA_HOME和path改动为java7的路径,java -version依旧还是显示6. ...