zoukankan      html  css  js  c++  java
  • 架构师的成长之路初片-shell-2(条件测试)

    方法三,使用let命令,不会输出运算结果,专用于(创建变量,或者对变量进行自增减

    功能一:  let a=1+1   创建变量a

    功能二:  对变量进行自增减

    常规写法  主流写法

    let a=a+1    let a++    变量的自增减,将变量a的值加1

    let a=a-1  let a--    变量a1

    let a=a+2        let a+=2   变量a2

    let a=a-2  let a-=2   变量a2

    let a=a*10  let a*=10  变量a乘以10

    -----------------------------------------------------------------------------------------------------

    方法四:使用bc工具,支持小数运算

    echo "1.1+1" | bc    //非交互的方式使用bc工具

    echo "10/3" | bc

    echo "scale=3;10/3" | bc   //scale可以定义小数点后面的长度

    ----------------------------------------------------------------

    二,条件测试,可以为脚本提供智能判断的功能

    使用方式: 1  test  表达式   2  [  表达式  ]

    1: 对字符串进行测试

    ==  判断两边是否相等   !=  判断两边是否不等

    [ abc == abc ]   //使用常量判断

    echo $?    //检查结果

    [ root == $USER ]    //使用变量判断当前用户是不是root

    echo $?    //检查结果

    -z  判断变量是否为空    ! -z 判断变量是否非空

    a=

    [ -z $a ]   //判断变量a如果为空则正确

    echo $?

    a=10

    [ ! -z $a ]  //判断变量a如果非空则正确

    echo $? 

    -----------------------------------------------

    2: 逻辑符号

    &&  之前指令执行成功才会执行之后指令

    ||   之前指令执行失败才会执行之后指令

     

    [ abc == xyz ] && echo ok

    [ abc == abc ] && echo ok

    [ abc == xyz ] || echo ok

    [ abc == abc ] || echo ok

    [ root == $USER ] || exit   //判断如果当前用户不是root,则退出

    [ root != $USER ] && exit   //效果同上

    例子:

    编写脚本,部署网站,如果不是管理员运行脚本则给出提示并退出

     ------------------------------------------------------------------------------------------------

    1, 数字的条件测试

    -eq等于     

     -ne不等于

     -gt大于  

    -ge大于等于 

     -lt 小于     

    -le小于等于

    [ $a -eq $b ]    //判断两个变量是否相等

    [ 0 -eq $UID ]    //也可以通过id号判断是否为管理员

    ---------------------------------------------------------------

    4,文件的条件测试

    -e 判断文件是否存在,不关心类型

    -f 判断是否存在且必须是普通文件

    -d 判断是否存在且必须是目录

    -r 判断当前用户对文件是否有读权限

    -w判断当前用户对文件是否有写权限

    -x 判断当前用户对文件是否有执行权限(目录的话是进入权限)

    [  -e  a  ]   当前位置如果有a文件,不关心类型,则测试成功

    [  -f  a  ]   当前位置如果有叫a的普通文件,则测试成功

    [  -d  a  ]   当前位置如果有叫a的目录,则测试成功

    [  -r  a  ]   当前用户如果对a文件有读权限,则测试成功

    [  -w  a  ]   当前用户如果对a文件有写权限,则测试成功

    [  -x  a  ]   当前用户如果对a文件有执行(目录是进入)权限,则测试成功

    例子:

    编写脚本,每隔2分钟检查系统登录账户数量,如果超过3人,则发邮件给

    管理员

     

    chmod +x test01.sh    //写完脚本后赋予x权限

    crontab -e  //编写计划任务

    */2 * * * * /opt/test01.sh  //然后在计划任务中定义执行频率是每2分钟一次

    然后可以用mail命令检查邮箱

    ------------------------------------------------------------------

    ################################################################################

    who :可查看有几个用户登录系统(终端)

    ################################################################################

  • 相关阅读:
    实验8-1-8 报数 (20分) 浙大版《C语言程序设计实验与习题指导(第3版)》题目集
    6-11 求自定类型元素序列的中位数 (25分)
    L2-032 彩虹瓶 (25分)
    L2-031 深入虎穴 (25分)
    L2-029 特立独行的幸福 (25分)
    L1-064 估值一亿的AI核心代码 (20分) 团体程序设计天梯赛-练习集
    7-16 一元多项式求导 (20 分) 数据结构与算法题目集(中文)
    7-28 搜索树判断 (25 分) 数据结构与算法题目集(中文)
    数据加密之SymmetricAlgorithm加密
    数据加密之RijndaelManaged加密
  • 原文地址:https://www.cnblogs.com/ahaocloud/p/14374646.html
Copyright © 2011-2022 走看看