【问题标题】:Is there a way to inline a Unicode escape sequence?有没有办法内联 Unicode 转义序列?
【发布时间】:2018-12-09 15:12:20
【问题描述】:

这行得通:

ghost=$'\U1F47B'
PROMPT='time: %T $ghost > '

但是有没有办法内联十六进制版本的 Unicode 字符?

【问题讨论】:

  • 这是我找到的一种解决方案:PROMPT="time: %T "$'\U1F47B'" > "
  • 你可以在$'...'里面放任何你想要的东西;它们就像单引号,但它们可以识别一些转义序列:PROMPT='time: %T \U1F47B > '
  • @chepner:我想你的意思是PROMPT=$'time: %T \U1F47B > '。但不幸的是,无法编辑 cmets。我重新打开了这个问题,以便您回答;欺骗有用但不精确。
  • 另外:bashzsh 是两个不同的 shell;从您对PROMPT 的使用中我可以看出您实际上在使用zsh。虽然我的答案适用于两个 shell,但同时标记问题很少有用,因为您可能需要单独的答案来解决每个 shell。

标签: bash unicode hex sh zsh


【解决方案1】:

$'...' 的内容不限于其特殊的转义序列。这样的序列在$'...' 内部时很容易被识别;您也可以包含其他文本,因为它们在其他方面与单引号相同(即,没有参数扩展)。

PROMPT=$'time: %T \U1F47B > '

【讨论】:

  • @rici 谢谢;我似乎无法为这个问题输入一个连贯的答案:)
猜你喜欢
  • 2014-05-11
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
  • 2019-08-07
相关资源
最近更新 更多