我正在寻找一种确定的方法来构建生成彩色输出的shell脚本.
不幸的是,我很难找到一个合适的库或好的技术来实现这一点.我发现了很多有用但简单的例子,比如this个.到目前为止,我找到的最全面的指南是this one.
在我开始编写自己的库之前,我想判断是否有人已经编写了它
如果你的解决方案不符合下面的观察结果,那不是问题.我也想读一读,这样如果我决定写我自己的解决方案,它可以帮助我
我的主要关注/观察:
- Needs to be safe.希望避免垃圾输出,因为并非所有终端或pager /编辑器(如less、more、vim等)都支持彩色输出或更多样式的输出(粗体、闪烁、斜体等)
-
Needs to be easy and readable.直接使用ANSI escape codes很可怕:
echo -e '\033[32mthis is ugly and \033[1;32mvery green\033[0m'
- Needs to give me access to the whole color palette and styles表示前景和背景文本.我发现的大多数示例只对前景文本使用基本 colored颜色 .
- Its preferable to use only simple commands类似于bash或更简单的shell,内置命令和/或大多数操作系统上可以找到的常见命令.例如,我可以使用colorize,但我需要ruby(这有点好)和colorize gem(不好)
- 100 seems to be a good option,因为它可以很好地操作shell光标,但它有点简单/不太灵活
编辑
在对终端控制和输出格式进行了一些研究之后,我写了this gist篇文章试图实现这一点.到目前为止,它做得相当好