Что ж, я новичок в Linux, и у меня проблема с простым сценарием bash.
У меня есть программа, которая добавляет в файл журнала во время работы. Со временем этот файл журнала становится огромным. Я хотел бы создать сценарий запуска, который будет переименовывать и перемещать файл журнала перед каждым запуском, эффективно создавая отдельные файлы журнала для каждого запуска программы. Вот что у меня есть на данный момент:
DATE=$(date +"%Y%m%d%H%M")
mv server.log logs/$DATE.log
echo program
При запуске вижу вот это:
: command not found
program
Когда я cd в каталог журналов и запускаю dir, я вижу следующее:
201111211437\r.log\r
Что происходит? Я предполагаю, что мне не хватает какой-то синтаксической проблемы, но я не могу ее понять.
ОБНОВЛЕНИЕ: благодаря приведенному ниже комментарию шелтера, я обнаружил, что проблема связана с тем, что я редактирую файл .sh в Notepad ++ в Windows, а затем отправляю через ftp на сервер, где я запускаю файл через ssh . После запуска dos2unix в файле он работает.
Новый вопрос: как я могу правильно сохранить файл, чтобы избежать необходимости выполнять это исправление каждый раз, когда я повторно отправляю файл?
\rэто carriage_return, проверьте свой сценарий bash, возможно, он включен в сценарий