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 httpdsystemctl restart httpdsystemctl enable httpd#判断防火墙是否开启ps -aux | grep firewalld | grep -v \'color\' &> /dev/nullif [ $? -eq 0 ];thenfirewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=httpsfirewall-cmd --reloadecho \"Firewalld strategy alread update\"elseecho \"Firewalld not running\"fi#判断selinux是否开启getenforce | grep enforif [ $? -eq 0 ];thensed -i \'s/SELINUX=enforcing/SELINUX=disabled/\' /etc/selinux/configsetenforce 0elseecho \"SELinux not running\"fi#curl http://127.0.0.1elif ping -c1 $gataway &>/dev/null;then #ping网关,若是通,可能就是dns问题echo \"check DNS\"elseecho \"检查IP配置是否正常\" #如果都排查不了就手动检查网络配置exitfi
例子2.判断当前内核主版本是否为3,且次版本是否大于10
#!/bin/bash#Kernel check#v1.0 by zjz 2019-10-30main_version=`uname -r | awk -F \".\" \'{print $1}\'`order_version=`uname -r | awk -F \".\" \'{print $2}\'`if [ $main_version -eq 3 ];thenecho \"当前的内核主版本为:$main_version\"fiif [ $order_version -ge 10 ];thenecho \"此版本内核为:$order_version,不大于10\"fi
例子3.判断:如果vsftpd启动,输出以下信息:
vsftpd服务器已启动.…I
vsftpd监听的地址是:
vsftpd监听的端口是:
vsftpd的进程PID是:
#!/bin/bash#判断vsftpd状态#v1.0 by zjzip=192.168.0.109rpm -q vsftpd >>/dev/nullif [ $? -ne 0 ];thenecho \"vsftpd 未安装\"yum install vsftpdfisystemctl restart vsftpdss -tnlp | grep \"vsftpd\" >>/dev/nullif [ $? -eq 0 ];thenvsftpd_address=$ipvsftpd_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\"elseecho \"vsftpd服务器未启动\"fi
例子4.判断用户输入的是否是数字
#!/bin/bash#判断输入的是否是数字#v1.1 by zjz 2019-10-30read -p \"请输入字符:\" numif [[ \"$num\" =~ ^[0-9]+$ ]];thenecho \"你输入的是数字\"elseecho \"你输入的不是数字\"fi
更多更好的原创文章,请访问官方网站: 点我就能跳转咯-》https://nothingzh.gitee.io
也可关注“哎呦运维”微信订阅号,随时接受文章推送。