需要在服务器上安装若干软件,一个个的去安装浪费时间,通过脚本安装时,安装过程中的[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
如有问题欢迎指正!