Я писав свій конфігураційний файл для Conky. Захотів зробити висновок долара і євро по відношенню до рубля і порахувати динаміку курсів. Завдання не складна, тому я швидко написав bash-скрипт. Курси валют вирішив взяти з сайту ЦБРФ.
Скрипт вийшов такий:
Однак при запуску скрипта я отримував повідомлення про помилку:
(Standard_in) 1: illegal character: ^ M
(Standard_in) 1: illegal character: ^ M
У чому ж справа? Вирішив подивитися змінні окремо. Додав два рядки:
Висновок змінних був коректним:
Може бути, помилка в рядку
Додамо висновок цього рядка командою
Вивелося тільки -58.7710. Куди ж поділося 59.4452? Ось тут і виникли труднощі. Вирішив я зробити запис висновок результату операції в файл, додали> 1.txt і> 2.txt після обробки даних, тобто вийшло так:
На вигляд все було нормально, цифри успішно записалися в файл.
Файли майже ідентичні, проте в файлі 2.txt присутній 0D. За допомогою пошукової системи знаходимо, що OD - «переклад каретки». Тобто при команді echo $ onedayagok- $ nowk спочатку виводилося значення змінної onedayagok, далі ж з початку рядка в цьому ж рядку виводилася змінна nowk, тобто перекриваючи колишню змінну. За допомогою тієї ж пошукової системи дізнаємося, що для видалення «КарТек» додаємо '\ r' в утиліту tr, тобто так: