day02:测试语句

测试语句:

  格式:[ 命令 ];命令前后都有空格

测试语句的作用:

  1.判断shell脚本的执行结果

  2.判断对象是否存在,比如说一个目录是否存在,不存在就创建出来

  3.判断磁盘、内存是否超出阈值,比如超出80%,就要执行邮件报警什么的

常用逻辑判断符:

  &&:逻辑与;            ||:逻辑或;

  例如:

    命令1  && 命令2  && 命令3  || 命令4     ###意思就是命令1返回为真,执行命令2;命令2返回为真,执行命令3;命令3返回为假,执行命令4

                      ###此处的真假,可以狭义上理解为命令是否执行成功

==========================

①文件判断(linux下一切皆为文件)

  -e:判断对象是否存在,无论是文件还是目录

  -f:对象是否存在,且是普通文件

  -d:对象是否存在,且是目录

  -x:对象是否存在,并且可执行的

  例如:判断目录是否存在,不存在就创建

    [root@rhel4 ~]# [ -d /test ] && echo "/test 已经存在" || mkdir /test           ##-d判断/test目录是否存在,存在就执行"&&‘后的命令
    [root@rhel4 ~]# [ -d /test ] && echo "/test 已经存在" || mkdir /test           ##再次执行,显然上面已经创建/test目录。然后执行"&&‘后的命令输出 /test 已经存在
    /test 已经存在

②整数数值判断:[ 数值1 比较符 数组2 ]

  -eq:是否等于            -ne:不等于

  -gt:是否大于     -ge:大于等于

  -lt:是否小于         -le:小于等于

  例如:
    [root@rhel4 ~]# [ 10 -le 10 ] && echo "ok" || echo "fail"
    ok
    [root@rhel4 ~]# [ 20 -le 10 ] && echo "ok" || echo "fail"
    fail
  


③整数多数值的比较

  -a:and,同时满足  -o:满足一个就可以

  例如:

    [root@rhel4 ~]# [ 10 -gt 0 -a 10 -lt 100 ] && echo "10大于0,小于100" || echo echo "fail"
    10大于0,小于100
   

实战:创建一个备份目录

vim /server/scripts/day02.sh 
#!/bin/bash
##定时备份本地的文件到备份目录,后期是会把这个目录通过rsync推送到备份服务器上的

#1.定义备份目录,备份目录的命令是/backup/主机名_ip_日期
BackupDir=/backup
Host=`hostname`
IP=`ifconfig  | grep -i "255.255.255.0" | awk '{print $2}'`
Day=`date +%F`
Dest=${BackupDir}/${Host}_${IP}_${Day}

[ -d ${Dest} ] && echo "备份目录${Dest}已经创建" || mkdir -p ${Dest}

执行脚本:

  

    

  

猜你喜欢

转载自www.cnblogs.com/SunMengZhao/p/12024167.html
今日推荐