【问题标题】:Animated PS1 prompt BASH [duplicate]动画 PS1 提示 BASH [重复]
【发布时间】:2015-06-02 22:14:03
【问题描述】:

我知道以前有人问过这个问题,但我在任何地方都找不到我想要的答案。我需要(希望拥有)一个 BASH 提示,如下所示:

[ blah@blah ] >
[ blah@blah ]  >
[ blah@blah ]   >

(然后动画重复) 它只是为了我的生活,我无法弄清楚,我一直在寻找几天(显然没有太多人不想要动画提示)。我想要它做的是每 1/2 秒通过一帧动画,所以每个完整的动画都是 1 1/2 秒长。

有什么办法可以做到吗?提前感谢,如果我解释的方式有点令人困惑,我们深表歉意。

【问题讨论】:

  • 我唯一想要的不是动画提示,就是会向我发出哔哔声的动画提示;)这可能会有所帮助:stackoverflow.com/questions/29448625/…。或者这个Two-cent tip
  • 我同意 chepner 的相关问题。我不相信这是可能的。至少在没有编写一个显示您自己的提示的脚本的情况下(这实际上可能以一种可靠和安全的方式实现,也可能不可行)。您可以让提示字符串以旋转模式移动到每个 new 提示行上的不同位置,但我认为这不是您的意思。
  • ftp.gnu.org/gnu/bash 获取 bash 源并修改它们。这是我能想到的做你想做的唯一方法。 (并且在让我看你的屏幕之前将其关闭。)
  • 感谢大家的提示和链接。我想我想通了

标签: linux bash unix prompt ps1


【解决方案1】:

这是我得到的:

animation() {
S="\033[s"
U="\033[u"

POS="\033[1000D\033[2C"
while [ : ]
do
    eval echo -ne '${S}${POS}\>\ \ ${U}'
    sleep 0.3
    eval echo -ne '${S}${POS}\ \>\ ${U}'
    sleep 0.3
    eval echo -ne '${S}${POS}\ \ \>${U}'
    sleep 0.3
done
}
PS1='[     ] : [ \u @ \h ] > '
animation &

我稍微修改了其中一个链接的脚本,因此您只需将其放入文件中并获取源代码或将其粘贴到终端中即可获得简单的动画提示。

【讨论】:

  • 将字符叠加到其他应用程序的输出中(当提示以外的其他内容在三分之一秒的边界处处于活动状态时)是一种令人讨厌的副作用,不是吗?
  • 为了防止这种情况发生,可能需要使用关闭效果的 DEBUG 陷阱和再次启动效果的 PROMPT_COMMAND...尽管需要小心防止 DEBUG 陷阱在执行 PROMPT_COMMAND 本身期间被调用。
猜你喜欢
  • 2014-09-08
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多