条件判断语句的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