shell 判断三个条件满足情况

要求:

视频软件会每天定时上传文件,列表文件名字已知,并且每个文件都会有三个不同后缀名,需要每天自动检测是否有缺少某个视频文件,以便补充文件。

例如:上传结果A.1、A.2、A.3、B.1、B.2、C.3

需要根据已知的文件列表去对比结果,然后提示缺少的文件B.3、C.1、C.2

已知条件:

1、文件列表:
[root@localhost ~]# cat /root/videolist 
a
b
c
d
e
f
g
h

2、上传的结果
[root@localhost ~]# ll video
total 0
-rw-r--r--. 1 root root 0 Mar 17 10:34 a.1
-rw-r--r--. 1 root root 0 Mar 17 10:34 a.2
-rw-r--r--. 1 root root 0 Mar 17 10:34 a.3
-rw-r--r--. 1 root root 0 Mar 17 10:34 b.1
-rw-r--r--. 1 root root 0 Mar 17 10:34 b.2
-rw-r--r--. 1 root root 0 Mar 17 15:45 c.2
-rw-r--r--. 1 root root 0 Mar 17 10:34 c.3
-rw-r--r--. 1 root root 0 Mar 17 15:49 d.1
-rw-r--r--. 1 root root 0 Mar 17 15:49 d.3
-rw-r--r--. 1 root root 0 Mar 17 15:49 e.1
-rw-r--r--. 1 root root 0 Mar 17 15:49 f.2
-rw-r--r--. 1 root root 0 Mar 17 15:49 g.3

方法一:

1、脚本

[root@localhost ~]# cat video.sh 
#!/bin/bash

videolist=`cat /root/videolist`

for video in $videolist

do

  if [ -f /root/video/"$video".1 -a -f /root/video/"$video".2 -a -f /root/video/"$video".3 ];
  then
    echo "file YES $video"
  elif [ -f /root/video/"$video".1 -a ! -f /root/video/"$video".2 -a -f /root/video/"$video".3 ];
  then
    echo "file lack $video.2"
  elif [ -f /root/video/"$video".1 -a -f /root/video/"$video".2 -a ! -f /root/video/"$video".3 ];
  then
    echo "file lack $video.3"
  elif [ -f /root/video/"$video".1 -a ! -f /root/video/"$video".2 -a ! -f /root/video/"$video".3 ];
  then
    echo "file lack $video.2 $video.3"
  elif [ ! -f /root/video/"$video".1  -a  -f /root/video/"$video".2 -a -f /root/video/"$video".3 ];
  then
    echo "file lack $video.1"
  elif [ ! -f /root/video/"$video".1 -a -f /root/video/"$video".2 -a ! -f /root/video/"$video".3 ];
  then
    echo "file lack $video.1 $video.3"
  elif [ ! -f /root/video/"$video".1 -a ! -f /root/video/"$video".2 -a  -f /root/video/"$video".3 ];
  then
    echo "file lack $video.1 $video.2"
  elif [ ! -f /root/video/"$video".1 -a ! -f /root/video/"$video".2 -a ! -f /root/video/"$video".3 ];
  then
    echo "file NO $video"
  fi
done

2、脚本执行结果

[root@localhost ~]# ./video.sh 
file YES a
file lack b.3
file lack c.1
file lack d.2
file lack e.2 e.3
file lack f.1 f.3
file lack g.1 g.2
file NO h

方法二:

1、脚本

[root@localhost ~]# cat if.sh 
#!/bin/bash

videolist=`cat /root/videolist`

for video in $videolist

do
  if [ ! -f /root/video/"$video".1 ];then
    if [ ! -f /root/video/"$video".2 ];then
      if [ ! -f /root/video/"$video".3 ];then
        echo "file FULL NO  $video"
      else
        echo "file NO $video.1 $video.2"
      fi
    elif [ ! -f /root/video/"$video".3 ];then
      echo "file NO $video.1 $video.3"
    else
      echo "file NO $video.1"
    fi
  elif [ ! -f /root/video/"$video".2 ];then
    if [ ! -f /root/video/"$video".3 ];then
      echo "file NO $video.2 $video.3"
    else
      echo "file NO $video.2"
    fi
  elif [ ! -f /root/video/"$video".3 ];then
    echo "file NO $video.3"
  else
    echo "file FULL YES $video"
  fi
done

2、结果

[root@localhost ~]# ./if.sh 
file YES a
file lack b.3
file lack c.1
file lack d.2
file lack e.2 e.3
file lack f.1 f.3
file lack g.1 g.2
file NO h

你可能感兴趣的:(#,shell脚本练习,运维,linux,bash)