使用rsync在脚本上进行Infini循环

时间:2017-10-16 21:35:51

标签: linux bash shell

我使用从rep1到rep2的rsync复制文件创建了一个函数。我用getopt创建了一个调用这个函数的参数。在这种情况下调用该函数但是执行无限循环,我不知道为什么。我尝试了这个没有案例的功能,而且效果很好。

rsync()中的东西:

    read -p 'Enter source directory : ' repSource
    read -p 'Enter destination directory : ' repDest


    if [ -e $repSource ] && [ -d $repSource ] && [ -e $repDest ] && [ -d $repDest ]
    then
            echo "File exists and it is a directory !"
            echo "Synchronisation of " $repSource "to " $repDest
            rsync -av $repSource  $repDest


    else

            echo "File doesn't exit or it is not a directory  !"
    fi

我的情况:

OPTS=$(getopt -o h,m,p,a,l,t) 
if [ $? != 0 ]
then
    exit 1
fi

    case "$1" in

             -h) aide;
               exit 0;;
             -m) RAM;
               exit 0;;
             -p) CPU;
               exit 0;;
             -a) logcpu;
               exit 0;;
             -l) autolog;
               exit 0;;
             -t) rsync;
               exit 0;;
    esac

结果如下:

Enter source directory : rep1/
Enter destination directory : rep2/
File exists and it is a directory !
Synchronisation of  rep1/ to  rep2/
Enter source directory :

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您正在使用相同名称的功能遮蔽“真实”命令var verify = provider.verify(); return Promises.all( expect(verify).to.eventually.be.fulfilled, expect(verify).to.eventually.be.true, ); 。您可以将rsync保留为函数名称,但是您需要使用内置的rsync来忽略该函数并调用实际命令。

command