V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
adoyle
V2EX  ›  Linux

用 ANSI Escape Code 改变 Shell 文字样式

  •  
  •   adoyle ·
    adoyle-h · 2019-06-14 10:55:08 +08:00 · 3043 次点击
    这是一个创建于 2022 天前的主题,其中的信息可能已经有所发展或是发生改变。

    改变 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,只是我觉得调用函数还是有点慢,不如直接调用变量。写死变量可能会造成命名冲突,于是做成一个生成器。

    3 条回复    2019-06-17 14:36:45 +08:00
    msg7086
        1
    msg7086  
       2019-06-14 12:42:06 +08:00
    我 zsh 下直接可以用
    echo -e "this is ${fg[red]}red${reset_color}"
    adoyle
        2
    adoyle  
    OP
       2019-06-14 13:10:27 +08:00
    @msg7086 恩,只不过我不是 zsh 用户…
    ggicci
        3
    ggicci  
       2019-06-17 14:36:45 +08:00
    zsh 好用,咧嘴一笑
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5816 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:01 · PVG 10:01 · LAX 18:01 · JFK 21:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.