Чому не працював bash-скрипт або про повернення каретки, savepearlharbor

Я писав свій конфігураційний файл для Conky. Захотів зробити висновок долара і євро по відношенню до рубля і порахувати динаміку курсів. Завдання не складна, тому я швидко написав bash-скрипт. Курси валют вирішив взяти з сайту ЦБРФ.

Скрипт вийшов такий:

Однак при запуску скрипта я отримував повідомлення про помилку:

(Standard_in) 1: illegal character: ^ M
(Standard_in) 1: illegal character: ^ M

Чому не працював bash-скрипт або про повернення каретки, savepearlharbor

У чому ж справа? Вирішив подивитися змінні окремо. Додав два рядки:

Висновок змінних був коректним:

Може бути, помилка в рядку

Додамо висновок цього рядка командою

Чому не працював bash-скрипт або про повернення каретки, savepearlharbor

Вивелося тільки -58.7710. Куди ж поділося 59.4452? Ось тут і виникли труднощі. Вирішив я зробити запис висновок результату операції в файл, додали> 1.txt і> 2.txt після обробки даних, тобто вийшло так:

На вигляд все було нормально, цифри успішно записалися в файл.

Чому не працював bash-скрипт або про повернення каретки, savepearlharbor

Чому не працював bash-скрипт або про повернення каретки, savepearlharbor

Файли майже ідентичні, проте в файлі 2.txt присутній 0D. За допомогою пошукової системи знаходимо, що OD - «переклад каретки». Тобто при команді echo $ onedayagok- $ nowk спочатку виводилося значення змінної onedayagok, далі ж з початку рядка в цьому ж рядку виводилася змінна nowk, тобто перекриваючи колишню змінну. За допомогою тієї ж пошукової системи дізнаємося, що для видалення «КарТек» додаємо '\ r' в утиліту tr, тобто так:

Чому не працював bash-скрипт або про повернення каретки, savepearlharbor