我想在 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_prompt
in 中libbb/lineedit.c
。)