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

猜你喜欢

转载自blog.csdn.net/xch622114/article/details/131330176
今日推荐