我不是shell脚本方面的专家,这就是我在这里问的原因:)。
假设我有一个文件夹。我需要一个脚本来监视该文件夹中的新文件(没有给出文件的前缀名称)。当一个新文件被复制到该文件夹中时,应该启动另一个脚本。第二个脚本是否成功处理了文件,应该删除文件。
我希望你能给我一些关于如何实现这样的脚本的想法:)
非常感谢您提前。托马斯
尝试这个:
观察者.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>
尝试inotify(http://man7.org/linux/man-pages/man7/inotify.7.html)
或者您可能需要安装 inotify-tools ( http://www.ibm.com/developerworks/linux/library/l-ubuntu-inotify/ ) 才能通过 shell 使用它。