修改READLINE_LINE以包含ANSI代码

READLINE_LINE是一个特殊变量,可用于bind -x阅读行绑定中指定的命令。

我绑定了一些键,以便使用bind -x运行自定义功能。在一个函数中,我想修改当前命令,并用红色的ANSI颜色代码包装它。例如:

READLINE_LINE=$'\033[0;31m'"$READLINE_LINE"

无论我尝试了什么,代码都会按原样打印回终端。可以在终端上打印红色吗?

tjlyu 回答:修改READLINE_LINE以包含ANSI代码

不确定您要做什么。 这有帮助吗?

#!/bin/bash
bar=$(echo '\033[0;31m'"$READLINE_LINE"\033[m)
echo "$bar"

但是为什么不呢?

qux=foo
bar='\033[0;31m'"$qux"'\033[m'
echo "$bar"

注1:始终以“重置为正常”顺序\033[m'关闭颜色转换顺序。

注2:我认为这是否最终取决于颜色取决于终端,尽管大多数虚拟终端可以完美处理数百种颜色。

本文链接:https://www.f2er.com/3105837.html

大家都在问