if语句打印已更改或新的文件名

时间:2014-05-15 18:08:07

标签: shell if-statement md5

我的目录中有一些文件,如

  a.txt
  a.txt.md5
  b.txt
  b.txt.md5
  c.txt

我正在尝试编写一个shell脚本,它将打印Md5不存在或Md5已更改的文件名

 for filename in ".txt"
 do
   if($filename.md5 not present OR $filename.md5 is changed)
     echo $filename
   fi
 done

那么这个条件怎么样呢?

  if($filename.md5 not present OR $filename.md5 is changed)

2 个答案:

答案 0 :(得分:1)

测试文件是否存在很容易:

if [ -e $file ]; then
   #checksum again
   if [ $? == 0 ];then
       echo $file
   fi
else
    echo $file 
fi

我只是抽象你要做的任何事情来检查校验和

也许我最好添加一个伪代码:

if file exists
   checksum
   if changed
      print filename
 else
      print filename

答案 1 :(得分:1)

输入单个if语句:

is_changed
if [ !-e $file -o $? == 0 ];then
   print $file
fi

假设你的函数is_changed如果被改变则返回0,否则返回别的东西。