写一个sh脚本判断,判断指定目录下,是否存在指定文件(ok文件),存在执行 sqlldr命令,不存在时命令不结束,直到检查到文件才执行sqlldr命令,这个怎么写

解决方案 »

  1.   

    for ((i=1; i<=100; i++))
    do
       echo $i
       if [ -f okfile ]; then
            sqlldr
            exit 1
       fi
    done
      

  2.   

    可以用while/until循环,但是你是要一直检查吗?有ok文件,执行后就停止脚本?
      

  3.   

    对啊!场景是,我需要将别的系统的dat文件加载到我们的数据库里,若不判断有没有ok文件就加载会空跑,之后就全错了
      

  4.   

    我这样写
    if [ -f "$fileok" ];then
    sqlldr......
    fi这样写的话,它不存在时这个程序也跑完了,后面的程序就继续跑了了
      

  5.   

    对啊!场景是,我需要将别的系统的dat文件加载到我们的数据库里,若不判断有没有ok文件就加载会空跑,之后就全错了
    #!/bin/bashwhile 1>0
    do
    if [ -f "$fileok" ]
    then
    sqlldr
    exit
    else
                    sleep 100
    continue
    fi
    done
    sleep 时间你自己定一个,最好不要太短,因为没有ok文件,会一直循环,时间太短,怕影响服务器
      

  6.   

    对啊!场景是,我需要将别的系统的dat文件加载到我们的数据库里,若不判断有没有ok文件就加载会空跑,之后就全错了
    #!/bin/bashwhile 1>0
    do
    if [ -f "$fileok" ]
    then
    sqlldr
    exit
    else
                    sleep 100
    continue
    fi
    done
    sleep 时间你自己定一个,最好不要太短,因为没有ok文件,会一直循环,时间太短,怕影响服务器

    这个好似报错了报了语法 else处的错,这个100是秒么?
      

  7.   

    对啊!场景是,我需要将别的系统的dat文件加载到我们的数据库里,若不判断有没有ok文件就加载会空跑,之后就全错了
    #!/bin/bashwhile 1>0
    do
    if [ -f "$fileok" ]
    then
    sqlldr
    exit
    else
                    sleep 100
    continue
    fi
    done
    sleep 时间你自己定一个,最好不要太短,因为没有ok文件,会一直循环,时间太短,怕影响服务器

    这个好似报错了报了语法 else处的错,这个100是秒么?嗯,这是100秒
    我这边格式有点问题,你自己重新缩进下
      

  8.   

    对啊!场景是,我需要将别的系统的dat文件加载到我们的数据库里,若不判断有没有ok文件就加载会空跑,之后就全错了
    #!/bin/bashwhile 1>0
    do
    if [ -f "$fileok" ]
    then
    sqlldr
    exit
    else
                    sleep 100
    continue
    fi
    done
    sleep 时间你自己定一个,最好不要太短,因为没有ok文件,会一直循环,时间太短,怕影响服务器

    这个好似报错了报了语法 else处的错,这个100是秒么?嗯,这是100秒
    我这边格式有点问题,你自己重新缩进下
    嗯缩进调了下就可以了,这个100秒后又回去判断么?直到他扫到了才结束么?
      

  9.   

    对啊!场景是,我需要将别的系统的dat文件加载到我们的数据库里,若不判断有没有ok文件就加载会空跑,之后就全错了
    #!/bin/bashwhile 1>0
    do
    if [ -f "$fileok" ]
    then
    sqlldr
    exit
    else
                    sleep 100
    continue
    fi
    done
    sleep 时间你自己定一个,最好不要太短,因为没有ok文件,会一直循环,时间太短,怕影响服务器

    这个好似报错了报了语法 else处的错,这个100是秒么?嗯,这是100秒
    我这边格式有点问题,你自己重新缩进下
    嗯缩进调了下就可以了,这个100秒后又回去判断么?直到他扫到了才结束么?是的,while循环就是只要条件为真,就一直循环。我直接定义1>0是永远为真,但是里卖弄做了if判断,如果存在ok文件,就执行sqlldr,然后exit退出脚本,否则,就continue,退出本次循环,直接进入下一次循环continue:退出本次循环,直接进入下一次循环
    break:退出整个循环,并不结束脚本exit:退出脚本