通过脚本实现linux上安装的自动交互


需要在服务器上安装若干软件,一个个的去安装浪费时间,通过脚本安装时,安装过程中的[y/N]类似的询问,通过 -y --force-yes 又莫名奇妙的报错,没有完成全部安装。只能从自动响应交互来切入了,查了下看可以通过expect来实现。主要代码如下,运行环境为ubuntu,需要安装expect(apt-get install expect即可)



apt-get install expect   #安装expect   


#!/bin/bash
echo $1
cat $1 | while read line
do
if [ "$line" != "******" ];then
	echo ">>> Now install " $line
	/usr/bin/expect <<-EOF  #expect的路径
	spawn apt-get install $line
	expect "y/N" 
	send "y\n"
	  
	if [ $?  -eq 0 ];then
		continue
	else
		echo 'install is  ERR'
		break
	fi
	expect eof 	
	EOF
else
	echo ">>> Now Remove " $line
	/usr/bin/expect <<-EOF
	spawn apt-get remove $line
	expect "y/N" 
	send "y\n"
	if [ $?  -eq 0 ];then
		continue
	else
		echo 'Remove is ERR'
		break
    fi
	expect eof            
	EOF
	

fi   
done

如有问题欢迎指正!


你可能感兴趣的:(Shell,测试技术)