Мне нужно добавить код в этот скрипт, чтобы игнорировать некоторые шаблоны, хранящиеся в 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 protected]
fi
В опубликованном коде есть ряд серьезных ошибок (т.е. ничего не выводить в файл tmp, открыть набор обратных галочек, открыть цикл).
Трудно сказать, чего вы пытаетесь достичь, но очевидно, что вы используете как глобализацию файлов (т. Е. PATHLIST), так и поиск для создания списка файлов, когда было бы гораздо лучше просто использовать поиск.
Вы можете игнорировать файлы с помощью команды find через параметр -prune.
find \( -iname '*.gif' -o -iname '*.jpg' -prune \) -o \( -print \)
Затем просто направьте этот вывод в цикл while для обработки каждого файла.
Если вы можете уточнить, что именно вы пытаетесь сделать, тогда я мог бы сделать дополнительные предложения …
Других решений пока нет …