我試圖使用OS X應用程序GeekTool將彩色文本輸出打印到桌面上。 GeekTool允許您在桌面上放置稱爲「geeklets」的小窗口。一種Geeklet顯示shell命令的輸出。運行Ruby腳本以輸出到Geektool時,ANSI轉義序列消失
我希望的輸出應該來自我用ruby腳本解析的文本文件。我使用ruby gem colorize在Ruby中的字符串周圍添加ANSI轉義序列。我的目標是將這些字符串輸出到Geektool並顯示彩色文本。
當我在終端(包括Terminal和iTerm2,同時使用zsh和bash)中運行Ruby腳本時,輸出的顏色非常好。但是當我在GeekTool中運行腳本時,它不是 - 轉義序列沒有顯示在輸出中,但沒有顏色。我知道GeekTool支持ANSI轉義序列,因爲當我運行這個shell命令:
printf "\e[0;35;49mabcd\e[0m"
我得到彩色GeekTool輸出。 echo $SHELL
也告訴我,GeekTool正在使用我通常使用的相同的zsh可執行文件。但由於某種原因,我的ruby腳本將不會打印彩色輸出。相反,我看到的是單色輸出,但剝離了轉義序列。
我的腳本使用Ruby的puts
來輸出包含轉義序列的字符串。我試過切換到p
。在終端中運行時,這會產生非彩色輸出,並且轉義序列保持不變。在GeekTool中運行時,我也獲得了非彩色輸出,但轉義序列再次消失。
任何人都知道我的逃生序列在哪裏?