Форум русскоязычного сообщества Ubuntu


Автор Тема: bash: Проверка изменения файлов  (Прочитано 2928 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Bam449

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
bash: Проверка изменения файлов
« : 27 Март 2013, 16:57:20 »
Добрый день. Прошу помощи и не бросать тухлыми помидорами за говнокодинг, т.к. новичок. Пишу скрипт на bash'e.

Есть два файла, размещены по http. Один меняется раз в месяц file1, второй изменяется раз в день file2. Если изменился месячный, то сразу изменится и дневной файл. Если изменился дневной, месячный не меняется. Скрипт скачивает данные файлы если изменились и заливает на фтп.
(Нажмите, чтобы показать/скрыть)

После выполнения ошибка Syntax error: end of file unexpected (expecting "fi"). И я конечно не совсем уверен  в правильности проверки на изменение и скачивание файла путем wget. Прошу поправить если чтото не так.

Оффлайн buggykey

  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
Re: bash: Проверка изменения файлов
« Ответ #1 : 27 Март 2013, 18:15:48 »
Лучше использовать редактор с подсветкой синтаксиса - он быстро покажет, где ошибка - лишние кавычки, или незакрытая конструкция "if - fi".
Однако, первое, что бросается в глаза - комментарии в баше обозначаются символом "#" а не "//", ну а дальше ищите недостающий "fi"(завершение конструкции). Кроме того, как я понимаю, нарушен синтаксис проверки выражения между квадратными скобками...

Оффлайн Bam449

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: bash: Проверка изменения файлов
« Ответ #2 : 27 Март 2013, 19:21:40 »
Лучше использовать редактор с подсветкой синтаксиса - он быстро покажет, где ошибка - лишние кавычки, или незакрытая конструкция "if - fi".
Однако, первое, что бросается в глаза - комментарии в баше обозначаются символом "#" а не "//", ну а дальше ищите недостающий "fi"(завершение конструкции). Кроме того, как я понимаю, нарушен синтаксис проверки выражения между квадратными скобками...


нет конструкция if fi закрыта, комментарий в коде нет, это я для сообщества писал чтобы понятнее было чего я именно хотел добиться от этих команд, потому как могу написать ошибочно и в действительности будет нечто иное чем я планировал. Пробовал и в квадратных скобках и вообще без них, и точку с запятой ошибка остается неизменной.

Оффлайн kupamaan

  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: bash: Проверка изменения файлов
« Ответ #3 : 27 Март 2013, 19:48:22 »
if [ условие ]
         then
           действие
else
   if [ условие ]   #if с новой строки
       then
           действие
   fi
fi

Оффлайн Bam449

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: bash: Проверка изменения файлов
« Ответ #4 : 28 Март 2013, 13:02:06 »
С if и синтаксисом все в порядке. здесь не срабатывает именно изза EOF. Если EOF вырезать в плане подключения к фтп то все прокатывает. Как EOF сделать внутри if?

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: bash: Проверка изменения файлов
« Ответ #5 : 28 Март 2013, 13:37:19 »
Зачем точка с запятой после EOF, по-моему после EOF не должно быть ничего кроме перевода строки.

appomsk

  • Гость
Re: bash: Проверка изменения файлов
« Ответ #6 : 07 Апрель 2013, 20:45:23 »
В 99 (ну может 90) процентов таких "странных" ошибок у меня были виноваты ДОСовские окончания строк.

 

Страница сгенерирована за 0.097 секунд. Запросов: 25.