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

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

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

有没有人知道啊?这就是我所知道的一切。

PS1='\u@\h: \w \$'

答案1

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:当前目录,带~表示主目录(仅带FEATURE_GETUSERNAME_AND_HOMEDIR
  • \W:当前目录(未缩写)
  • \xHH或者\XHH其中 HH 是两个十六进制数字:由其十六进制代码给出的字符
  • \[…\]:所包含的文本不计入宽度计算目的

(如果您查看源代码,这发生在parse_and_put_promptin 中libbb/lineedit.c。)

相关内容