Скрипт оболочки UNIX во время цикла - PullRequest
2 голосов
/ 24 сентября 2011

Я пытаюсь написать скрипт для отслеживания хода изменения файла.

До сих пор у меня есть следующее:

#!/bin/sh
old=‘ls -l /tmp/file‘
new=‘ls -l /tmp/file‘
while [ "$old" = "$new" ]
do
    new=‘ls -l /tmp/file‘
done
echo "The file has been changed"

При запуске вышеупомянутая программа выдает сообщение:

new: command not found

Может кто-нибудь помочь, пожалуйста.

Спасибо

1 Ответ

1 голос
/ 24 сентября 2011

Возможно, у вас есть место вокруг =.

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

MY_VAR = "my value"  # this is wrong!

Оболочка подумает: "вызовите MY_VAR с аргументами: ('=', 'my value')", но подождите! Я не знаю команду "MY_VAR"!

Вам нужно сделать это следующим образом:

MY_VAR="my value"  # this is OK!

Кстати, рассмотрите возможность использования команды inotifywatch. Вот пример:

inotifywatch -v -e access -e modify -t 60 -r /file/to/watch
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...