Re: не срабатывает условие в bash
Vladimir Skubriev -> Debian-russian @ Thu, 27 Mar 2014 16:27:48 +0400:
VS>
VS> Есть скрипт:
VS>
VS> ENABLE_SYSLOG=true
VS> test -r /etc/default/inotifywait && . /etc/default/inotifywait || exit 99
VS> test -d $INOTIFY_FOLDER || exit 100
VS>
VS> inotifywait -mrq -e ATTRIB --format '%w%f' "$INOTIFY_FOLDER" | while IFS= read -r FILE
VS> do
VS> if [ -f $FILE ];then
VS> # If file
VS> if [ `stat -c %a $FILE` != "664" ] ;then
VS> CHMOD_LOG=$(chmod -v 664 "$FILE"); [[ -f $FILE ]] && logger -t inotifywait -p user.info "$CHMOD_LOG" &
VS> fi
VS> else
VS> # If directory
VS> if [ `stat -c %a $FILE` != "2775" ] ;then
VS> CHMOD_LOG=$(chmod -v 2775 "$FILE"); [[ "$ENABLE_SYSLOG" = true ]] && logger -t inotifywait -p user.info "$CHMOD_LOG" &
VS> fi
VS> fi
VS> done
VS>
VS> Не получается выполнить logger по условию:
VS>
VS> [[ -f $FILE ]]
VS>
VS> или
VS>
VS> [[ "$ENABLE_SYSLOG" = true ]]
VS>
VS> Почему logger не срабатывает?
Потому что у $FILE уже подходящие права, и мы не попадаем в эту ветку if?
Reply to: