Chinaunix

标题: 关于循环判断路径下文件的问题,请各位大神帮忙! [打印本页]

作者: lovesky_25f    时间: 2014-07-18 11:23
标题: 关于循环判断路径下文件的问题,请各位大神帮忙!
我想循环判断某一个路径下某一个文件是否存在,当文件存在时就执行其他程序,如果不存就是就始终循环判断,直到文件存在为止,这个程序想始终在后台运行,请问各位大神该怎样写shell??
作者: ly5066113    时间: 2014-07-18 11:28
回复 1# lovesky_25f
  1. while :
  2. do
  3.         if [ -e "PATH/file" ]
  4.         then
  5.                 your command
  6.                 break
  7.         fi
  8.        
  9.         sleep 30
  10. done
复制代码

作者: lovesky_25f    时间: 2014-07-18 14:25
如果判断某个路径下多个文件是否存在(文件的共性是8位日期),又该怎样写呢,谢谢!
作者: zerostudy    时间: 2014-07-18 14:42
本帖最后由 zerostudy 于 2014-07-18 14:48 编辑

刚才没看清楚。
  1. #! /bin/sh

  2. files="a b c d e f"

  3. while [ 1 ];do
  4. chk=1
  5. for x in $files;do

  6.     if [ ! -f "$x" ];then
  7.        chk=0
  8.     fi

  9. done

  10. if [ $chk -eq 1 ];then
  11.         echo "$files is exists"
  12. fi

  13. sleep 2

  14. done
复制代码

作者: fxpbupt    时间: 2014-07-18 14:48

fn=$(ls  /dir  [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] |wc -l)
[ "$fn" -gt 0 ] && echo "have"

感觉好丑啊

回复 3# lovesky_25f


   
作者: lovesky_25f    时间: 2014-07-18 14:48
如果判断某个路径下多个文件,比如说5个文件,是否存在(文件的共性是8位日期),如果少一个都不执行,又该怎样写呢,谢谢!
作者: fxpbupt    时间: 2014-07-18 14:57
本帖最后由 fxpbupt 于 2014-07-18 15:02 编辑

回复 6# lovesky_25f


while :
do
                fn=$(ls /dir |grep -P '[0-9]{8} |wc -l)
        if [ "$fn" -gt 5 ]  
                then
                        command ;
                        break;
                fi
                sleep 30
done


作者: lovesky_25f    时间: 2014-07-18 15:54
不好意思,我表达的有错误,应该是目录下有5个文件,(文件的共性是8位日期,不是文件的内容),如果少一个都不执行,该怎样写呢,谢谢!
作者: lovesky_25f    时间: 2014-07-18 15:57
谢谢各位大神帮忙!!!
作者: 用户名注册后不能更改    时间: 2014-07-19 00:17
回复 8# lovesky_25f

ls | grep
难道不是文件名么。
作者: 用户名注册后不能更改    时间: 2014-07-19 00:18
回复 7# fxpbupt

grep有-c的。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2