AI智能
改变未来

Shell-if条件判断 实例

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
也可关注“哎呦运维”微信订阅号,随时接受文章推送。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Shell-if条件判断 实例