架构师的成长之路初片-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 :可查看有几个用户登录系统(终端)

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

 

posted @ 2021-02-04 19:49  樱花泪  阅读(37)  评论(0编辑  收藏  举报