我正在尝试使用 OS X 应用程序GeekTool将彩色文本输出打印到我的桌面上。GeekTool 允许您将称为“geeklets”的小窗口放在桌面上。一种 Geeklet 显示 shell 命令的输出。
我想要的输出应该来自我用 ruby 脚本解析的文本文件。我正在使用 ruby gem colorize在 Ruby 中的字符串周围添加 ANSI 转义序列。我的目标是将这些字符串输出到 Geektool 并显示彩色文本。
当我在终端(终端和 iTerm2,同时使用 zsh 和 bash)中运行 Ruby 脚本时,输出的颜色非常好。但是当我在 GeekTool 中运行脚本时,它不是——转义序列没有显示在输出中,但是没有颜色。我知道 GeekTool 支持 ANSI 转义序列,因为当我运行这个 shell 命令时:
printf "\e[0;35;49mabcd\e[0m"
我得到彩色 GeekTool 输出。 echo $SHELL
还告诉我 GeekTool 正在使用我通常使用的相同 zsh 可执行文件。但由于某种原因,我的 ruby 脚本不会打印彩色输出。相反,我看到的是单色输出,但转义序列被剥离。
我的脚本使用 Rubyputs
输出包含转义序列的字符串。我尝试切换到p
. 在终端中运行时,这会产生具有完整转义序列的非彩色输出。在 GeekTool 中运行时,我也得到了非彩色输出,但转义序列再次消失了。
有人知道我的转义序列要去哪里吗?