条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断

一、用户输入云服务器相关信息(主机名),判断主机名输入是否合法?

       合法输出主机名,为空不合法。

#!/bin/bash
read -p 'hostname:' hostname
if [ -z $hostname ];then
        echo "The Hostname is False"
else
        echo "$hostname"
fi

条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第1张图片条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第2张图片

二、主机连通性判断

1. 需求: 判断当前主机是否和远程主机ping通?   实现思路如下所示:

  • 使用哪个命令实现 ping -c次数

  • 根据命令的执行结果状态来判断是否通$?

  • 根据逻辑和语法结构来编写脚本(流程控制语句

#!/bin/bash
ip=$*
if [ -z $ip ];then
        echo "Usage:ping [ip]"
        exit 1
else
        ping -c1 $ip &> /dev/null
        if [ $? -eq 0 ];then
                echo "$ip can ping"
        else
                echo "$ip can not ping"
        fi
fi

条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第3张图片

三、进程存在性判断

 1.需求: 判断Web服务器中httpd进程是否存在? 实现思路如下所示:

  • 查看进程的相关命令 ps pgrep
  • 根据命令的执行结果状态来判断是否通$?
  • 根据逻辑和语法结构来编写脚本(流程控制语句)
#!/bin/bash
name=$*
pgrep $name &> /dev/null
if [ $? -eq 0 ];then
        echo "$name process existse"
else
        echo "$name process not existse"
fi

条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第4张图片条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第5张图片

四、用户存在性判断

1.需求: 输入一个用户,用脚本判断该用户是否存在?实现思路如图所示:

  • 查看进程的相关命令 id username |   grep -w username /etc/passwd
  • 根据命令的执行结果状态来判断是否通$?
  • 根据逻辑和语法结构来编写脚本(流程控制语句)
#!/bin/bash
read -p "username:" username
if [ -z "$username" ];then
        echo "pleas input username"
else
        id $username &>/dev/null
        if [ $? -eq 0 ];then
                echo `id $username`
        else
                echo "$username not existse"
        fi
fi

 条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第6张图片条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第7张图片

五、软件包安装判断

需求: 用脚本判断一个软件包是否安装,如果没安装则安装它

假设本地yum已搭好,软件仓库搭建请查看之前博客 

#!/bin/bash
read -p "please input package name:" name
rpm -ql $name &>/dev/null
if [[ $? -eq 0 ]];then
        echo "$name installed"
else
        echo "$name not installed,installing........"
        dnf install $name -y 1>/dev/null
        if [ $? -eq 0 ];then
                echo "$name install successful"
        else
                echo "$name install faliled"
        fi
fi

条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第8张图片条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第9张图片

六、内核版本判断

  • 判断当前内核主版本是否为4,且次版本是否大于等于6;
  • 如果都满足则输出当前内核版本

 

#!/bin/bash
master_version=`uname -r | cut -d . -f 1`
salve_version=`uname -r | cut -d . -f 2`
version_detail=`uname -r`
#########  method 1  #############
if [ $master_version = 4 ];then
        if [ $salve_version -ge 6 ];then
                echo $version_detail
        fi
fi


echo "------------------"
#########  method 2  #############
[ $master_version = 4 -a $salve_version -ge 6 ] && echo $version_detail


echo "------------------"
#########  method 3  #############
if [ $master_version = 4 -a $salve_version -ge 6 ];then
        echo $version_detail
fi


echo "------------------"
#########  method 4  #############
if [ $master_version = 4 ] && [ $salve_version -ge 6 ];then
        echo $version_detail
fi

条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第10张图片条件判断语句的shell脚本的练习 ---主机名合法性判断、主机连通性判断、进程存在性判断、用户存在性判断、软件包安装判断、内核版本判断_第11张图片

 

你可能感兴趣的:(Linux系统中shell脚本,shell,linux,运维)