shell使用expect进行交互式操作

1. 环境安装

以centos环境为例:

a. 安装tcl

b.安装expect

2. 安装controller

install.sh

#!/bin/bash

/usr/bin/expect -v > /dev/null 2>&1

if [ $? -ne 0 ]; then

    echo "Please install expect."

    exit

fi


if [ $# -ne 1 ]; then

    echo "Usage: ./install version"

    exit

fi


version=$1 

/usr/bin/expect << EOF

set timeout 300

spawn rpm -ivh $version

expect {

    "Continue?" {send "Y\n"; exp_continue}

    "Please enter a username:" {send "root"; exp_continue}

    "Please enter a password:" {send "123456"; exp_continue}

    eof {exit}

}

EOF

3.卸载controller

uninstall.sh

#!/bin/bash

/usr/bin/expect -v > /dev/null 2>&1

if [ $? -ne 0 ]; then

    echo "Please install expect."

    exit

fi


if [ $# -ne 1 ]; then

    echo "Usage: ./uninstall version"

    exit

fi


version=$1 

/usr/bin/expect << EOF

set timeout 300

spawn rpm -e $version

expect {

    "Do you want to uninstall the package?" {send "Y"; exp_continue}

    eof {exit}

}

EOF


猜你喜欢

转载自blog.csdn.net/opbocai/article/details/80697584