linux--expect用法
前言
我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,这时候就用到了expect。
举例:
1、复制本地文件到服务器中,此时会要求先确认再输入密码(先输入“yes”再输入密码),如下图
2、设置jdk版本时sudo update-alternatives --config java,需要输入序号选择JDK版本,如下图
使用步骤:
1、安装expect
sudo apt-get install expect
2、创建一个.sh后缀的文件
3、编辑文件,文件开头申明,标识脚本使用的Shell解释器类型为expect:
#! /usr/bin/expect
4、接收文件执行时命令行传参,并定义变量:
set jdk_command [lindex $argv 0]
set jdk_version [lindex $argv 1]
5、使用spawn执行命令:
spawn sudo update-alternatives --config $jdk_command
6、交互开始,检查交互提示行:
expect "type selection number:"
7、交互行输入
send "$jdk_version\r"
8、结束本次交互
expect eof
傻乎乎的胖鱼: 可以用来管理不同的用户操作jenkins的权限,如果是个人jenkins,则不需要
chinamanong: 毫无用处,浪费空间,
普通网友: 阅读这篇博文真是一次愉快的体验!作者的文字真是动人心弦,语言精准而生动。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】
普通网友: 文章构思巧妙,结构紧凑,既有深度又有广度,读后让人受益匪浅,确实是一篇值得一读的佳作。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】
普通网友: 干货满满,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】