用 ANSI Escape Code 改变 Shell 文字样式

2019-06-14 10:55:08 +08:00
 adoyle

改变 Shell 文字样式,本质上就是用 ANSI Escape Code 来改变终端模拟器的行为,可以做到很多事,比如改变文字颜色,文字闪烁,改变鼠标位置,清屏等等。比如执行 echo -e '\e[2J' 来清屏,或者 echo -e '\e[2J\e[u' 清屏并重置鼠标位置(跟 ctrl-l 同样效果)。这也跟 tput 命令是异曲同工的。

看了一些文章,还是挺有趣的,分享给大家。

然后我写了一个简单的生成这些变量的命令行脚本: https://github.com/adoyle-h/shell-general-colors

其实也有类似的工具 ansi,只是我觉得调用函数还是有点慢,不如直接调用变量。写死变量可能会造成命名冲突,于是做成一个生成器。

3037 次点击
所在节点    Linux
3 条回复
msg7086
2019-06-14 12:42:06 +08:00
我 zsh 下直接可以用
echo -e "this is ${fg[red]}red${reset_color}"
adoyle
2019-06-14 13:10:27 +08:00
@msg7086 恩,只不过我不是 zsh 用户…
ggicci
2019-06-17 14:36:45 +08:00
zsh 好用,咧嘴一笑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/573838

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX