을 예상대로 작동하지 :쉘 스크립트 :`[[`나는 스크립트가
이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 ];then
# If file
if [ `stat -c %a $FILE` != "664" ] ;then
CHMOD_LOG=$(chmod -v 664 "$FILE")
[[ "$ENABLE_SYSLOG" = true ]] && 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
내 상태가
[[ "$ENABLE_SYSLOG" = true ]] && logger -t inotifywait -p user.info "$CHMOD_LOG"
작동하지 왜? 내가
[[ "$ENABLE_SYSLOG" = true ]] &&
을 제거하면
그런 다음 모든 것이 괜찮습니다.
앰퍼샌드 (&)를 제거하고 다른 조건을 시도해보십시오 (예를 들어 볼 수 있듯이) [[- 그러나 모두 헛되이 시도하십시오.
모든 조건은
'$ ENABLE_SYSLOG "&& ...' – anubhava
감사합니다. 이것은 굉장합니다 – vskubriev
이것은 영리하게 보일지 모르지만, 아마도 좋은 생각이 아닙니다. 시도가 실패한 이유를 알아봐야합니다. 'bash'의 어떤 버전을 사용하고 있습니까? 스크립트를 어떻게 실행합니까? –