busybox 支持 sh 的特殊提示符号是什么?

Dan*_*Lin 7 shell prompt busybox

我想在 PS1 上设置时间提示。但是,没有关于 busybox 支持什么符号的文档。

有谁知道吗?以上是我所知道的。

PS1='\u@\h: \w \$'
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 11

BusyBox 有两个外壳,ash 和 hush。要查看您拥有的是哪一个,请运行type chdir:ash 将其作为内置cd函数(与 同义),而 hush 则没有。两者都有可选的提示扩展功能。Ash 通过ASH_EXPAND_PRMT在编译时激活该功能来启用,而 hush 需要FEATURE_EDITING_FANCY_PROMPT.

当该功能存在时,在 ash 中, 的值PS1像双引号字符串一样扩展:$foo$(command)`command`扩展构造。

处理了一些反斜杠转义(在替换后的灰烬中)。它们是 bash 的一个子集。

  • \!: 行历史计数
  • \a: 铃
  • \b: 退格
  • \e, \E: 逃脱
  • \f: 换页
  • \h: 主机名
  • \n: 新队
  • \r: 回车
  • \t: 标签
  • \u: 用户名(仅带FEATURE_GETUSERNAME_AND_HOMEDIR
  • \v: 垂直标签
  • \w: 当前目录,with~表示主目录(仅 with FEATURE_GETUSERNAME_AND_HOMEDIR
  • \W: 当前目录(未缩写)
  • \xHH\XHH其中 HH 是两个十六进制数字:由其十六进制代码给出的字符
  • \[…\]: 包含的文本不计入宽度计算目的

(如果您正在查看源代码,这发生parse_and_put_promptlibbb/lineedit.c.)