加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Shell语法—— if 条件语句

发布时间:2020-12-15 23:23:55 所属栏目:安全 来源:网络整理
导读:if 条件语句语法 1.单分支结构 if 条件表达式 ; then 指令fi 2.双分支结构 if 条件表达式 ; then 指令 1else 指令 2fi 3.多分支结构 if 条件表达式 1 ; then 指令 1else if 条件表达式 2 ;then 指令 2elif 条件表达式 3 ;then 指令 3else 指令 4fi if 条件语
if 条件语句语法

1.单分支结构

if < 条件表达式 >; then
    指令
fi

2.双分支结构

if < 条件表达式 >; then
    指令 1
else
    指令 2
fi

3.多分支结构

if < 条件表达式 1 >; then
    指令 1
else if < 条件表达式 2 >;then
    指令 2
elif < 条件表达式 3 >;then
    指令 3
else
    指令 4
fi
if 条件语句多种条件表达式语法

1.test 条件表达式

if test 表达式;then
        指令
if
  1. [] 条件表达式
    if [ 表达式 ];then
        指令
    if
  2. [[]] 条件表达式
    if [[ 表达式 ]];then
        指令
    if
  3. (()) 条件表达式
    if (( 表达式 ));then
        指令
    if

    5.命令表达式

    if 命令;then
        指令
    if

    案例一:
    编写 Shell 脚本判断系统剩余内存大小,为方便测试,如果低于 1000M,则发送邮件报警,加入定时任务,每 3 分钟执行一次
    1.安装 mail 客户端

    yum install mail -y
    echo "
    set [email?protected] smtp=smtp.163.com
    set [email?protected] smtp-auth-password=password smtp-auth=login " >> /etc/mail.rc

    2.编辑 Shell 脚本

    #!/bin/bash
    free=`free -m|awk ‘NR==3{print $NF}‘`
    age="Mem:$free  insufficient memory"
    if [ $free -lt 1000 ];then
        echo $age|tee /home/while.log
        mail -s "`date -u +%F_%X`" [email?protected] < /home/while.log
    fi

案例二:
简单判断数据库服务是否正常运行
方法一:

#!/bib/basg
if [ `netstat -lntp|grep mysqld|wc -l` -gt 0 ];then
        echo "zheng chang"
else
        echo "yi chang"
fi

方法二:

#!/bib/basg
if [ `ps -fe|grep mysqld|grep -v grep|wc -l` -gt 0 ];then
        echo "zheng chang"
else
        echo "yi chang"
fi

方法三:

#!/bin/bash
[ `rpm -qa nmap|wc -l` -lt 1 ] && yum install nmap -y &>/dev/null
if [ `nmap 192.168.1.1 -p 3306 2>/dev/null|grep open|wc -l` -gt 0 ];then
        echo "zheng chang"
else
        echo "yi chang"
        service mysqld start
fi

方法四:

#!/bin/bash
[ `rpm -qa nc|wc -l` -lt 1 ] && yum install nc -y &>/dev/null
if [ `nc -w 2 192.168.1.1 3306 &>/dev/null && echo ok | grep ok | wc -l` -gt 0 ];then
        echo "zheng chang"
else
        echo "yi chang"
        service mysqld start
fi

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读