![zsh 提示 arch-installation shell 似乎因未知命令而中断](https://linux22.com/image/214079/zsh%20%E6%8F%90%E7%A4%BA%20arch-installation%20shell%20%E4%BC%BC%E4%B9%8E%E5%9B%A0%E6%9C%AA%E7%9F%A5%E5%91%BD%E4%BB%A4%E8%80%8C%E4%B8%AD%E6%96%AD.png)
如果我问一个不重要的问题,请提前道歉,但我在任何地方都找不到有关此问题的任何信息,这让我发疯。参见上图。
这是在 arch 安装 shell 中发生的,我已经能够在 virtualbox 和从 USB 启动的裸机上重现这一点。当第一次从 arch iso 启动时,会出现一个带有 zsh 提示符的 root shell,看起来root@archiso ~ #
如果输入可识别的命令,提示符保持不变,但如果输入无法识别的命令,则 zsh 提示符的用户字段在第一个命令上从 变为root
,1 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
%?
%?
zsh
devs
zsh
这回答了我猜的问题。谢谢!