Как поделиться фрагментами кода bash / shell, взятыми из командной строки, с окраской синтаксиса - PullRequest
1 голос
/ 26 августа 2010

Я ищу способ поделиться фрагментами кода, взятыми непосредственно из командной строки. Например:

plinjasa@pllzpc029 ~
$ ls

plinjasa@pllzpc029 ~
$ mkdir maindir

plinjasa@pllzpc029 ~
$ ls -l
total 0
drwxr-xr-x+ 1 plinjasa Domain Users 0 2010-08-26 15:22 maindir

plinjasa@pllzpc029 ~
$ cd maindir

plinjasa@pllzpc029 ~/maindir
$ touch somefile

plinjasa@pllzpc029 ~/maindir
$ ls -l
total 0
-rw-r--r-- 1 plinjasa Domain Users 0 2010-08-26 15:22 somefile

plinjasa@pllzpc029 ~/maindir
$ 

Существуют некоторые решения, показывающие это с подсветкой синтаксиса bash (как вы можете видеть), но я не вижу способа сохранить быстрое окрашивание или что-нибудь, что могло бы помочь прочитать такой фрагмент.

Есть идеи?

[РЕДАКТИРОВАТЬ] Исправлен пример, так как это вызывало некоторую путаницу с тем, чтобы иметь цвет FTP тоже. Это не важно

Ответы [ 3 ]

3 голосов
/ 26 августа 2010

Вы можете захватывать сеансы консоли, используя script . Когда вы выйдете из сеанса, появится файл с именем typescript, содержащий именно то, что вы набрали / увидели в консоли. Затем вы можете преобразовать его (включая цветовые коды консоли) в HTML, используя ANSIFilter . Его выход еще не идеален, но может соответствовать вашим потребностям.

Если вам не нужно, чтобы он был переносимым или если получатель также использует терминал UNIX / Linux, вы также можете просто отправить файл машинописного текста, который можно просмотреть с помощью cat или less -R в терминале .

1 голос
/ 26 августа 2010

Вы можете использовать утилиту, чтобы преобразовать цветной вывод терминала в HTML.Один из них здесь: ansi2html.sh , и я нашел его очень полезным.Компания jkramer предоставила решение для получения текстового файла с полным журналом из терминала, который можно использовать с ansi2html.sh, поэтому я не буду повторять это здесь.

0 голосов
/ 26 августа 2010

Нелегко, из-за различных приглашений, разделителей и т. Д. Я бы, например, логически разделил взаимодействия с различными программами (lftp и самой оболочкой) и уменьшил бы приглашение до минимального выражения.Это что-то вроде:

Вы открываете программу lftp и делаете все, что угодно:

$ lftp
lftp> open -u ...
Password...
...
lftp> XXX
lftp> exit

, затем вы можете проверить в командной строке:

$ ls -l
total 0
drwx....

Этоспособ разделения разных действий для разных программ, а сокращение подсказки до небольшого слова помогает идентифицировать используемую программу.

...