2

我不是shell脚本方面的专家,这就是我在这里问的原因:)。

假设我有一个文件夹。我需要一个脚本来监视该文件夹中的新文件(没有给出文件的前缀名称)。当一个新文件被复制到该文件夹​​中时,应该启动另一个脚本。第二个脚本是否成功处理了文件,应该删除文件。

我希望你能给我一些关于如何实现这样的脚本的想法:)

非常感谢您提前。托马斯

4

2 回答 2

4

尝试这个:

观察者.sh:

#!/bin/bash
if [ -z $1 ];
then
    echo "You need to specify a dir as argument."
    echo "Usage:"
    echo "$0 <dir>"
    exit 1
fi

while true;
do
    for a in $(ls -1 $1/* 2>/dev/null);
    do
        otherscript $a && rm $a #calls otherscript with the file a as argument and removes it if otherscript returned something non-zero
    done
    sleep 2s
done

不要忘记使其可执行

chmod +x ./watcher.sh

调用它:

./watcher.sh <dirname>
于 2013-08-16T07:00:52.903 回答
1

尝试inotify(http://man7.org/linux/man-pages/man7/inotify.7.html

或者您可能需要安装 inotify-tools ( http://www.ibm.com/developerworks/linux/library/l-ubuntu-inotify/ ) 才能通过 shell 使用它。

于 2013-08-16T07:43:42.533 回答