我需要在此脚本中添加一些代码,以忽略PATHLIST中存储的某些模式。如何删除最终报告中要忽略的这些模式?
#!/bin/bash
PATHLIST="/home/*/public_html/"
TMPFILE=/tmp/xs.tmp
echo > $TMPFILE
for i in $PATHLIST; do `find $i -mtime 0 -type f ! \( -iname "*.jpg" -o -iname "*.gif" -o -iname "*.png" -o -iname "*.swf" -o -iname "*.psd" -o -iname "*.htaccess" -o -iname "*.pdf" -o -iname "*.FH11" -o -i$
if ! [ `cat $TMPFILE | grep [a-zA-Z] | wc -l` = 0 ]
then
for i in `cat $TMPFILE`
do
echo "Found $i"
done | mail -s "Recent changes detected" email@email.com
fi
答案 0 :(得分:1)
发布的代码中存在许多严重错误(即,在tmp文件中没有回显,打开一组反引号,打开循环)。
很难分辨出你想要实现的目标,但很明显你正在使用文件通配(即PATHLIST)并找到创建文件列表,当简单地使用find时会好得多
您可以通过-prune选项忽略带有find的文件。
find \( -iname '*.gif' -o -iname '*.jpg' -prune \) -o \( -print \)
然后将该输出定向到while循环以处理每个文件。
如果你能澄清你究竟想做什么,那么我可以提出进一步的建议......