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


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

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

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

在这里插入图片描述
在这里插入图片描述

二、主机连通性判断

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

  1. 使用哪个命令实现 ping -c次数
  2. 根据命令的执行结果状态来判断是否通$?
  3. 根据逻辑和语法结构来编写脚本(流程控制语句
    #!/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

在这里插入图片描述

三、进程存在性判断

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

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

在这里插入图片描述
在这里插入图片描述

四、用户存在性判断

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

在这里插入图片描述
在这里插入图片描述

五、软件包安装判断

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

假设本地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

在这里插入图片描述
在这里插入图片描述

六、内核版本判断

  • 判断当前内核主版本是否为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

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值