title: Shell-if条件判断 实例
date: 2020-04-29 21:05:25
categories:
- Shell
tags: - if
例子1:检查网络是否正常后,自动安装httpd服务
#!/bin/bash
# auto install apache
# v1.1 by zjz 2019.10.30
# v1.2 by zjz 2020.04.29
#route 命令需提前安装net-tools
#gataway=`route -n | grep UG | awk '{print $2}'` #得出他的网关
gateway=`routel | sed -n '2p' | awk -F' ' '{print $2}'`
ping -c1 wwww.baidu.com &>/dev/null #测试网络是否正常
if [ $? -eq 0 ];then #当ping通百度, 0=0时开始安装
yum install -y httpd
systemctl restart httpd
systemctl enable httpd
#判断防火墙是否开启
ps -aux | grep firewalld | grep -v 'color' &> /dev/null
if [ $? -eq 0 ];then
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
echo "Firewalld strategy alread update"
else
echo "Firewalld not running"
fi
#判断selinux是否开启
getenforce | grep enfor
if [ $? -eq 0 ];then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
else
echo "SELinux not running"
fi
#curl http://127.0.0.1
elif ping -c1 $gataway &>/dev/null;then #ping网关,若是通,可能就是dns问题
echo "check DNS"
else
echo "检查IP配置是否正常" #如果都排查不了就手动检查网络配置
exit
fi
例子2.判断当前内核主版本是否为3,且次版本是否大于10
#!/bin/bash
#Kernel check
#v1.0 by zjz 2019-10-30
main_version=`uname -r | awk -F "." '{print $1}'`
order_version=`uname -r | awk -F "." '{print $2}'`
if [ $main_version -eq 3 ];then
echo "当前的内核主版本为:$main_version"
fi
if [ $order_version -ge 10 ];then
echo "此版本内核为:$order_version,不大于10"
fi
例子3.判断:如果vsftpd启动,输出以下信息:
vsftpd服务器已启动.…I
vsftpd监听的地址是:
vsftpd监听的端口是:
vsftpd的进程PID是:
#!/bin/bash
#判断vsftpd状态
#v1.0 by zjz
ip=192.168.0.109
rpm -q vsftpd >>/dev/null
if [ $? -ne 0 ];then
echo "vsftpd 未安装"
yum install vsftpd
fi
systemctl restart vsftpd
ss -tnlp | grep "vsftpd" >>/dev/null
if [ $? -eq 0 ];then
vsftpd_address=$ip
vsftpd_port=`ss -tnlp | grep "vsftpd" | awk '{print $4}' | awk -F ":" '{print $4}'`
vsftpd_pid=`systemctl status vsftpd |grep 'Main PID' | awk '{print $3}'`
echo "vsftpd服务器已启动"
echo "vsftpd_IP地址为$vsftpd_address"
echo "vsftpd服务器端口为$vsftpd_port"
echo "vsftpd服务进程PID为$vsftpd_pid"
else
echo "vsftpd服务器未启动"
fi
例子4.判断用户输入的是否是数字
#!/bin/bash
#判断输入的是否是数字
#v1.1 by zjz 2019-10-30
read -p "请输入字符:" num
if [[ "$num" =~ ^[0-9]+$ ]];then
echo "你输入的是数字"
else
echo "你输入的不是数字"
fi
更多更好的原创文章,请访问官方网站: 点我就能跳转咯-》https://nothingzh.gitee.io
也可关注“哎呦运维”微信订阅号,随时接受文章推送。