Naf*_*Kay 5 bash prompt quoting
我正在尝试使用 Unicode 字符自定义我的 Bash 提示,但遇到了一些麻烦。如果我尝试包含这样的 Unicode 字符:
$ echo ? | hexdump -C
00000000 e2 98 a2 0a |....|
00000004
$ PS1="\xe2\x98\xa2\x0a"
Run Code Online (Sandbox Code Playgroud)
我看到我的提示如下所示:
\xe2\x98\xa2\x0a
Run Code Online (Sandbox Code Playgroud)
...而不是显示 ? 特点。我究竟做错了什么?
bash
对于简单的双引号,这不是有效的转义语法。试试吧
PS1=$'\xe2\x98\xa2 '
Run Code Online (Sandbox Code Playgroud)
本品采用特殊的$'...'
引用是bash
有和不支持ANSI C逃脱。请注意,这0a
只是换行符(换行符),我怀疑您是否想要这样,因此我冒昧地将其替换为上面的空格。
当然,您不必经历查找 UTF-8 编码的整个复杂过程,然后输入转义符,而只需使用原始字符本身 ( PS1='? '
),它仍然可以工作。