xtala
@xtala
Постигает Дзен

Как правильно присвоить переменной в bash кириллицу?

Привет. Кто много работает в консоли 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, так, чтобы избежать этой ошибки. Спасибо.
  • Вопрос задан
  • 335 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы