【发布时间】:2011-10-30 01:52:35
【问题描述】:
我的 bash 提示有一个特定的方法,假设它看起来像这样:
CHAR="༇ "
my_function="
prompt=\" \[\$CHAR\]\"
echo -e \$prompt"
PS1="\$(${my_function}) \$ "
为了解释上述内容,我通过执行存储在字符串中的函数来构建我的 bash 提示符,这是this question 的结果做出的决定。让我们假装它可以正常工作,因为它确实可以,除非涉及 unicode 字符
我正在尝试找到转义 unicode 字符的正确方法,因为现在它与 bash 行长度混淆了。测试它是否损坏的一种简单方法是键入一个长命令,执行它,按 CTRL-R 并键入以找到它,然后按 CTRL-A CTRL-E 跳转到行的开头/结尾。如果文本出现乱码,则无法正常工作。
我已经尝试了几种方法来正确转义函数字符串中的 unicode 字符,但似乎没有任何效果。
像这样的特殊角色作品:
COLOR_BLUE=$(tput sgr0 && tput setaf 6)
my_function="
prompt="\\[\$COLOR_BLUE\\] \"
echo -e \$prompt"
这是我将提示设为函数字符串的主要原因。该转义序列不会与行长混淆,它只是 unicode 字符。
【问题讨论】: