首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有可能在不影响提示线宽计算的情况下设置MYSQL_PS1的颜色?

问有没有可能在不影响提示线宽计算的情况下设置MYSQL_PS1的颜色?
EN

Stack Overflow用户
提问于 2021-01-22 03:41:17
回答 1查看 52关注 0票数 1

请考虑MySQL_PS1的以下设置

代码语言:javascript
复制
GREEN="$(echo -e '\033[01;32m')"
BLUE="$(echo -e '\033[01;34m')"
RESET="$(echo -e '\033[00m')"
export MYSQL_PS1="${GREEN}STAGING-\\d${BLUE} >${RESET} "

当我启动mysql,并键入一个比可视行长度更长的命令时,它不换行,覆盖了行的开头。

我尝试了在这里提到的here的\[ \]技巧。

代码语言:javascript
复制
export MYSQL_PS1="\[${GREEN}\]STAGING-\\d\[${BLUE}\] >\[${RESET}\] "

不幸的是,它生成了这个提示,而不是从行长度中正确排除转义字符。

代码语言:javascript
复制
] >\[\]  >[\] ]   >\[\] ]STAGING-\d\[\] >\[\] STAGING-messenger[\] >\[\]

有没有一种方法可以在MYSQL_PS1中设置颜色而不弄乱估计的行长度?

EN

回答 1

Stack Overflow用户

发布于 2021-01-22 06:44:01

我在this comment中找到了答案,我将在这里转载。

正确的咒语是用\001和\002包围转义序列。

代码语言:javascript
复制
GREEN="$(echo -e '\001\033[01;32m\002')"
BLUE="$(echo -e '\001\033[01;34m\002')"
RESET="$(echo -e '\001\033[00m\002')"
export MYSQL_PS1="${GREEN}STAGING-\\d${BLUE} >${RESET} "
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65834658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档