![如何区分以换行符结尾的 bash 提示符和正在运行的命令?](https://linux22.com/image/222145/%E5%A6%82%E4%BD%95%E5%8C%BA%E5%88%86%E4%BB%A5%E6%8D%A2%E8%A1%8C%E7%AC%A6%E7%BB%93%E5%B0%BE%E7%9A%84%20bash%20%E6%8F%90%E7%A4%BA%E7%AC%A6%E5%92%8C%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我在 bash 中打开了括号粘贴模式。我认为这是一个很好的安全功能,我想保留它。我遇到的一个问题是,很难区分正在运行的命令和粘贴以换行符结尾的命令但未运行的命令。
也就是说,我的提示将如下所示:
[...]$ some command that may not output for ten seconds
_
(其中_
表示我的光标所在的位置)
很长一段时间留下这样一个未完成的提示(在粘贴命令后),想知道为什么执行速度这么慢,这是一个常见的错误。通常,当我运行htop
或ps
在另一个终端中时,我意识到没有任何东西正在运行,然后可以按Enter我的提示。
我想要某种方式来直观地看到“运行命令”和“仍在提示”情况之间的区别。例如,以所有提示行开头...>
或在第一行中添加一些彩色文本,就像MULTILINE
它是多行提示符的开头一样(并在命令执行后删除该文本)。
我正在使用 bash 4.2.46 (似乎使用 readline 版本 6),尽管我也可以接受仅适用于 bash 4.4.20 (和 readline 版本 7)的答案。我想我也会对需要新版本 bash 的解决方案感兴趣。