1

我正在寻找某种方法来共享直接从命令提示符获取的代码片段。例如:

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 着色的一些混淆。这并不重要

4

3 回答 3

3

您可以使用脚本捕获控制台会话。当您退出会话时,将有一个名为的文件,typescript其中包含您在控制台上输入/看到的内容。然后,您可以使用ANSIFilter将其(包括控制台颜色代码)转换为 HTML 。它的输出还不完美,但可能适合您的需求。

如果您不需要它是可移植的,或者如果收件人也在使用 UNIX/Linux 终端,您也可以只发送 typescript 文件,可以使用catless -R在终端中查看。

于 2010-08-26T14:47:13.813 回答
1

您可以使用实用程序将 ansi 彩色终端输出转换为 html。其中之一在这里:ansi2html.sh,我发现它非常有用。jkramer提供了从终端获取包含完整日志的文本文件的解决方案,可以和ansi2html.sh一起使用,这里不再赘述。

于 2010-08-26T15:05:11.857 回答
0

一点都不容易,因为提示符、分隔符等不同。例如,我会在逻辑上分离与不同程序(lftp 和 shell 本身)的交互,并将提示符减少到最小表达式。那是这样的:

您打开lftp程序并执行任何操作:

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

然后你可以测试你的 shell 提示符:

$ ls -l
total 0
drwx....

通过这种方式,您可以将不同的动作分开到不同的程序,并将提示减少到一个小词有助于识别正在使用的程序。

于 2010-08-26T08:05:43.470 回答