Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Linux - в конвейере теряются символы (Shell скрипты)  (Прочитано 719 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн xatul

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Скрипт выводит на экран информацию о таблицах БД, примерно так:
+-------+----------------
| Field | Type
+-------+---------------
|

При использовании конвейера или перенаправления вывода символы "+", "-", "|" теряются.
Текстовая часть сохраняется нормально.

Ubuntu 12.04
===========================

Вот фрагмент скрипта:

a='describe '$1               # $1 - имя таблицы
db='uf'                       # - имя базы
a="'"$a"' "$db
a='sudo mysql -h localhost -P 3306 -u root -p<pass> -e '$a
eval $a

запускаем....

$ . desctable.sh xmlsitemap
получаем на экране:

+-------------------+--------------
| Field | Type
+-------------------+----------------
|

$ . desctable.sh xmlsitemap | more (или еще что-нить на конвейер или перенаправление)
получаем:

Field Type
id int(10) unsigned
type varchar(32)

---------------------------
Вариации типа ret=`eval $a` - тот же эффект, плюсики/минусики до $ret не доходят.

Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера
Это не конвейер. Это сам мускуль так отдает, если выдача идет не через его pager.

Решение:
sudo mysql -h localhost -P 3306 -u root -p<pass> --table -e

Оффлайн xatul

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
2 shumtest
Оба! Работает! Спсб.

 

Страница сгенерирована за 0.078 секунд. Запросов: 25.