思路:rpm -q 判断软件包是否安装,pgrep判断服务是否启动
#!/bin/bash
#检测安装函数
check_install() {
        rpm -q $1 &>/dev/null
        if [ $? -eq 0 ];then#判断是否已经安装软件包
                echo "$1 software is already installed,checking..."
        else
                while :
                do
                read -p "$1 not installed,do you want to install it ?(y or n)" n
                case $n in
                        y)
                        echo "installing..."#安装提示
                        yum install -y $1 &>/dev/null#不显示输出信息
                        if [ $? -eq 0 ];then
                                echo "$1 installation successful !"
                                break#安装成功退出循环
                        else
                                echo "No such $1 software !"
                                exit 1#无软件包退出脚本
                        fi
                        ;;
                        n)
                        echo "bye!"
                        exit 1#不安装退出脚本
                        ;;
                        *)
                        echo "please input y or n. "#提示输入y 或者n
                        continue
                        ;;
                esac
                done
        fi

}
#检测服务启动函数
server_start() {
        case $1 in
             y)
             echo "starting..."#启动提示
             service $2 start &> /dev/null#不显示输出信息
             if [ $? -eq 0 ];then
                echo "$2 service started successfully! "        
                break#启动成功退出循环
             else
                echo "$2 service started failed!"
                break#启动失败退出循环
             fi
             ;;
             n)
             echo "bye!"
             exit 2#不启动退出脚本
             ;;
             *)
             echo "please input y or n. "#提示输入y 或者n
             continue
             ;;
        esac

}
if [ $# -ne 1 ];then #判断输入参数是否为1
        echo "please input a parameter!"
        exit
fi
check_install $1#调用函数
if [ $? -eq 0 ];then#判断安装是否成功
        if ! pgrep $1 2> /dev/null;then
        while :
        do
        read -p "$1 server is not started,do you want to start it ? (y or n)" ser
        server_start $ser $1#调用函数
        done
        else
        echo "$1 service is already started!"				
        fi
fi
以httpd为例,使用:sh server_check.sh httpd