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

tech2022-09-17  102

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

一用户输入云服务器相关信息(主机名),判断主机名输入是否合法?1.合法输出主机名,为空不合法。二、主机连通性判断1.需求: 判断当前主机是否和远程主机ping通? 实现思路如下所示: 三、进程存在性判断1.需求: 判断Web服务器中httpd进程是否存在? 实现思路如下所示: 四、用户存在性判断1.需求: 输入一个用户,用脚本判断该用户是否存在?实现思路如图所示: 五、软件包安装判断1.需求: 用脚本判断一个软件包是否安装,如果没安装则安装它假设本地yum已搭好,软件仓库搭建请查看之前博客 六、内核版本判断


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

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

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

二、主机连通性判断

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

三、进程存在性判断

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

四、用户存在性判断

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)