Привет. Кто много работает в консоли Linux и пользуется Twitter, возможно слышал/пользовался консольной утилитой для отправки твитов -- twidge. Утилита работает без нареканий и честно отправляет твиты в авторизованный аккаунт, если бы не одно "но" . В обычном случае утилита подхватывает одну строчку короче 140 символов без переноса строки
Привет мир! | twidge update
. Собственно все бы ничего, но мне в голову пришла мысль (наверное не мне первому) вводить твиты не руками, а использовать для этого другую консольную утилиту Linux -- fortune , которая выдает случайную цитату.
fortune | twidge update
, но как выяснилось при переносе строки твит считается законченным и отправляется на сервер. А фортунки состоят обычно из 2 или 3 строк. На linux форуме подсказали такую форму записи
fortune -sn140 | tr -s '[:space:]' ' ' | twidge update
Теперь фортунки не режутся,т.к. переносы строки убраны, но напрочь теряется форматирование, что может испортить фортунку например со стихами. Немного потыкав пальцем в небо я пришел к выводу, что можно попробовать фортунки выводить сначала в файл на жесткий диск, а потом через
cat
присваивать содержимое файла переменной, а переменную скармливать
twidge update
.
Набросал простенький bash скриптик :
#!/bin/bash
config_file=$(cat test)
twidge update "$config_file"
Чтобы не усложнять задачу не стал пока выводить фортунку в файл, а просто создал в домашней папке файлик
test
и забил туда такой текст :
bla
bla
Hello world!
Запустил скрипт и это сработало! Twidge отправил твит с сохраненным форматом текста, т.е. с перенесенными строками.
Но радость была недолгой. Забив файлик текст на русском :
бла
бла
Привет Мир!
Консоль вернула ошибку :
twidge: Enum.toEnum{Word8}: tag (1073) is outside of bounds (0,255)
И как я только не извращался с кавычками, оно ни в какую не хочет принимать на вход переменную с русскими символами. Собственно главный вопрос и заключается в том, что возможно кто-то знает правильный способ (если он есть) присваивания тектса на русском переменной в bash, так, чтобы избежать этой ошибки. Спасибо.