搞砸了我的 bash 提示,发生了什么?

Got*_*bel 3 bash prompt

我只是想我可能会通过输入获取有关当前 bash 的版本信息

bash -v
Run Code Online (Sandbox Code Playgroud)

这给标准输出带来了多行代码,并给我留下了一行出现在我通常的提示正上方的行

printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
[foo@bar path]$
Run Code Online (Sandbox Code Playgroud)

我想我知道这可能是什么(呈现提示的代码),但我不知道如何摆脱它。谁做?

Jos*_* R. 6

只需键入exit即可退出bash您调用的新shell。

解释

-v选项不符合您的想法。来自bash(1)

-v 以可以重新读取的方式显示 readline 变量名称和值。

因此,您的命令所做的就是启动另一个bashshell,并带有-v打印您在输出中看到的各种变量名称的选项。

你想要的是

bash --version
Run Code Online (Sandbox Code Playgroud)

更新

由于 OP评论说这听起来太像“重新启动系统”这样的答案,这里有另一种方法:

-v通过发出禁用该选项

set +v
Run Code Online (Sandbox Code Playgroud)

但是请注意,这将使您留在之前通过调用分叉的子 shell 中bash