无论是yum、wget、git、rpm在安装过程中都有出现安装过程,容易打乱安装提示,原来我看过有wget的下载进度条,但不用应用到其他安装过程,有兴趣的可以去看看,不是很实用。
讲下我的思路,无论在yum、wget、git、rpm过程中都会有对应的进程,所以我就来个while循环检测它们的进程,做个小提示“安装中。。。”,当然你也可以用其他符合代替
是不是很简单,如果是一个shell脚本,需要将yum、wget、git、rpm后台一个新的shell执行。
贴个我的脚本实例:(以yum为例,其他都是类似)
#!/bin/bash
#3个函数
#安装RPM=samba
#检测rpm
FUNCHECKRPM(){
RPM=samba
echo "正在检测 $RPM 安装包"
yum provides $RPM >/dev/null 2>&1
if [ ! $? -eq 0 ];then
echo -e "\e[31m 错误!yum源中未能找到 $RPM 安装包,请检测yum源或网络连接! \e[0m"
exit
fi
}
#安装rpm
FUNYUMRPM(){
echo "yum -y install $RPM" >/tmp/yuminstall
nohup bash /tmp/yuminstall >/tmp/test 2>&1 &
}
#安装检测
FUNCHECKYUM(){
while [ $? -eq 0 ]
do
echo "$RPM 安装中,请等待 。。。 "
sleep 3
ps -ef |grep -v grep|grep "yum.*install.*$RPM.*" >/dev/null 2>&1
done
echo "$RPM 安装完成"
}
FUNCHECKRPM
FUNYUMRPM
FUNCHECKYUM
只是个安装提示,如果有兴趣的可以研究一下怎么打印一个进度条。
发表评论