zsh 提示 arch-installation shell 似乎因未知命令而中断

zsh 提示 arch-installation shell 似乎因未知命令而中断

截屏

如果我问一个不重要的问题,请提前道歉,但我在任何地方都找不到有关此问题的任何信息,这让我发疯。参见上图。

这是在 arch 安装 shell 中发生的,我已经能够在 virtualbox 和从 USB 启动的裸机上重现这一点。当第一次从 arch iso 启动时,会出现一个带有 zsh 提示符的 root shell,看起来root@archiso ~ #如果输入可识别的命令,提示符保持不变,但如果输入无法识别的命令,则 zsh 提示符的用户字段在第一个命令上从 变为root1 root然后从后续命令开始,提示符变为127 root@archiso ~ #

需要明确的是,命令行仍然有效,并且可以像往常一样继续安装,但是以这种方式更改的根提示符令人困惑,并且在不知道可能导致这种情况的情况下有点担心。

我对 zsh 不熟悉,所以也许这是 zsh 的怪癖,而不是 arch linux 的东西,但我不太了解导致用户名显示一些增量的原因。事实上,它停在 127 处似乎是一个线索,因为 127 是 7 位的最高值。这是一个错误吗?这是否可以被利用?还有其他人注意到这一点吗?谁能解释为什么会发生这种情况?感谢您的帮助!

我的PS1是:

# echo "$PS1"
%B%F{red}%(?..%? )%f%b%B%F{red}%n%f%b@%m %B%40<…<%~%<< %b%#

答案1

我找到了这个问题

这解释了

“包括使用转义序列在提示中Zsh显示上一个命令的返回码的能力。”转义序列包含在提示中,因此我猜测这是基于 arch在配置安装 shell 提示时所做的选择的预期行为。code/exit%?%?zshdevszsh

这回答了我猜的问题。谢谢!

相关内容