Автор Тема: Вывод [b]Жирным[/b] текста сообщения в линуксовой командной строке  (Прочитано 6250 раз)

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

Оффлайн UltraMax

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.dinamo-minsk.org
Скрипт на перле работает под ОС линукс
Через print я вывожу необходимые мне сообщения в консоль.
Однако столкнулся с необходимстью выводить некоторые слова жирным шрифтом (или уж если не слова, то весь текст который идет через print).
Может кто подскажет, как это можно реализовать?

Оффлайн Light Elf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
С уважением,
Light Elf

Оффлайн UltraMax

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.dinamo-minsk.org
Цитировать
Light Elf (27-06-2001 14:25):
поюзай Tk.

Что что поюзать???? Расшифруй плиз!

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Цитировать
UltraMax (27-06-2001 16:43):
Цитировать
Light Elf (27-06-2001 14:25):
поюзай Tk.

Что что поюзать???? Расшифруй плиз!
Tk - это библиотеки для построения графического интерфейса, т.е. можно использовать в Perl модули Tk, подробнее на cpan.org ;)
 в исканиях.

Оффлайн Feska

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://barmaley.virtualave.net
Если не ошибаюсь, перед каждой буквой ваделяемого слова нужно вставлять 0x8.
Проверить легко: введи из командной строки что-то вроде "man ls > aaa" и посмотри получившийся файл. Там содержатся все необходимые символы, используемые для подсветки man-страниц.

Оффлайн UltraMax

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.dinamo-minsk.org
Цитировать
Feska (09-07-2001 09:39):
Если не ошибаюсь, перед каждой буквой ваделяемого слова нужно вставлять 0x8.
Проверить легко: введи из командной строки что-то вроде "man ls > aaa" и посмотри получившийся файл. Там содержатся все необходимые символы, используемые для подсветки man-страниц.

Угу - символ то вроде 0x8 отвечает за жирность, но это в shell скрипте можно сделать
А как в перле-то, через print добавить жирность? Как включить в выводимой строчку этот 0x8 символ?

Оффлайн Feska

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://barmaley.virtualave.net
Угу - символ то вроде 0x8 отвечает за жирность, но это в shell скрипте можно сделать
А как в перле-то, через print добавить жирность? Как включить в выводимой строчку этот 0x8 символ?[/quote]

Так, например:
$a="abwfjpfgjdopfhgk";
$b=chr(8);
$a=~s/(\\w)/$1$b/g;

Оффлайн UltraMax

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.dinamo-minsk.org
Цитировать
Feska (10-07-2001 09:21):
Так, например:
$a="abwfjpfgjdopfhgk" ;
$b=chr(8) ;
$a=~s/(\\w)/$1$b/g;

Написал так

#!/usr/bin/perl

$a = "test";
$b = chr(8) ;
$a = ~ s/(\\w)/$1$b/g;
print $a;

вот что выдает
4294967295
....
даже слово test не пишет, я уж не говрю о жирности... во какая засада

Оффлайн Feska

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://barmaley.virtualave.net
Написал так

#!/usr/bin/perl

$a = "test";
$b = chr(8) ;
$a = ~ s/(\\w)/$1$b/g;
print $a;

вот что выдает
4294967295
....
даже слово test не пишет, я уж не говрю о жирности... во какая засада[/quote]

--------------------------

Мой вариант: $a=~s/(\\w)/$1$b/g;
Твой вариант: $a = ~ s/(\\w)/$1$b/g;
Почувствуй разницу.
На всякий случай: оператор "=~" пишется без пробела.

Оффлайн UltraMax

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.dinamo-minsk.org
Цитировать
Feska (12-07-2001 09:13):
Мой вариант: $a=~s/(\\w)/$1$b/g;
Твой вариант: $a = ~ s/(\\w)/$1$b/g;
Почувствуй разницу.
На всякий случай: оператор "=~" пишется без пробела.

Ну вот так написал

#!/usr/bin/perl

$a="test";
$b=chr(8);
$a=~s/(\\w)/$1$b/g;
print $a;

Вообще ничего не выдает!
А с каких это пор в перле пробелы стали учитываться?????

Оффлайн Feska

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://barmaley.virtualave.net
Ну вот так написал

#!/usr/bin/perl

$a="test";
$b=chr(8);
$a=~s/(\\w)/$1$b/g;
print $a;

Вообще ничего не выдает!
А с каких это пор в перле пробелы стали учитываться?????[/quote]

Извини, я что-то Linux давно не юзал.
При ближайшем рассмотрении дело выглядит так:
#!/usr/bin/perl
$a="test";
$b=chr(8);
$c=$a;
open(FL,"|more");
$c=~s/(\\w)/$1$b$1/g; #Один вид выделения
print FL "$c
";
$c=$a;
$c=~s/(\\w)/_$b$1/g; #Другой вид выделения
print FL "$c
";
close(FL);

more понадобился для того, чтобы все это работало. Без него идет серая картинка. Забыл, вах!
Еще я надыбал в документации про некий специальный модуль для цветного вывода.
Цитирую:
#!/usr/bin/perl
$a="test";
$b=chr(8);
$c=$a;
open(FL,"|more");
$c=~s/(\\w)/$1$b$1/g;
print FL "$c
";
$c=$a;
$c=~s/(\\w)/_$b$1/g;
print FL "$c
";
close(FL);
use Term::ANSIColor qw(:constants);     print BOLD, BLUE, "This text is in bold blue.
", RESET;

Оффлайн Feska

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://barmaley.virtualave.net
Блин, запарился. Повтор.
...Цитирую:
use Term::ANSIColor qw(:constants);    
print BOLD, BLUE, "This text is in bold blue.
", RESET;[/quote]

Оффлайн UltraMax

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 98
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.dinamo-minsk.org
Цитировать
Feska (13-07-2001 09:42):
#!/usr/bin/perl
$a="test";
$b=chr(8);
$c=$a;
open(FL,"|more");
$c=~s/(\\w)/$1$b$1/g;
print FL "$c
";
$c=$a;
$c=~s/(\\w)/_$b$1/g;
print FL "$c
";
close(FL);

Выводит следющее
test
test
... то есть подчеркивание работает
а первый вывод стандартен, и жирности не наблюдается...


 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28