[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: не срабатывает условие в bash



Vladimir Skubriev <vladimir@skubriev.ru> writes:

> Есть скрипт:
> ENABLE_SYSLOG=true
> test -r /etc/default/inotifywait && . /etc/default/inotifywait || exit
> 99
> test -d $INOTIFY_FOLDER || exit 100
> inotifywait -mrq -e ATTRIB --format '%w%f' "$INOTIFY_FOLDER" | while
> IFS= read -r FILE
> do
> if [ -f FILE ]
> # if file
> then
>     if [ `stat -c %a $FILE` != "664" ]
>     then
> 	CHMOD_LOG=$(chmod -v 664 "$FILE"); [[ -f $FILE ]] && logger -t inotifywait -p user.info "$CHMOD_LOG" &
>     fi
> else
>     # If directory
>     if [ `stat -c %a $FILE` != "2775" ] 
>     then
> 	CHMOD_LOG=$(chmod -v 2775 "$FILE"); [[ "$ENABLE_SYSLOG" = true ]] && logger -t inotifywait -p user.info "$CHMOD_LOG" &
>     fi
> fi
> done
> Не получается выполнить logger по условию:
> [[ -f $FILE ]] 
> или
> [[ "$ENABLE_SYSLOG" = true ]] 
> Почему logger не срабатывает?
> Спасибо!
> --
> Faithfully yours,
> Vladimir Skubriev

Владимир, есть проблема с Вашим скриптом, связанная с тем, что он не
полный, и протестить его у себя мы не можем.

Ничего криминального в нём не вижу, за исключением одного. Если файл был
удалён, то inotifywait не выведет ли его имя? Если выведет, то попадёте
в ветку "If directory", что нехорошо.

По вашему же вопросу, хочется уточнить. А перед запуском скрипта Вы
права на директорию меняете?

PS: Ну и отступы нормальные расставить не помешало бы.

Attachment: pgp0PZWmPoqFo.pgp
Description: PGP signature


Reply to: