我不是shell脚本专家,这就是我在这里问的原因:)。
假设我有一个文件夹。我需要一个脚本来监视该文件夹中的新文件(没有给出文件的前缀名称)。将新文件复制到该文件夹时,应启动另一个脚本。如果第二个脚本成功处理了文件,则应删除该文件。
我希望你能就如何实现这样的脚本给我一些想法:)
非常感谢您提前。 托马斯
答案 0 :(得分:3)
试试这个:
watcher.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>
答案 1 :(得分: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使用它。