我的ZSH主题在我的.zsh-theme文件中使用RPROMPT='$(vbox_status)'
输出我的Vagrant / VBox虚拟机的状态(其中vbox_status
调用a script which outputs what's running),如下所示:
然而,我想知道是否有一种方法可以使这个输出“粘性”,这样,它不会在每一行的末尾输出,而是保持在箭头所示的位置,只需在每次更新时自行更新上面输出一个新行。
例如
答案 0 :(得分:3)
您可以使用名为tput
的命令执行此操作。
我制作了一个基本脚本,它将一个字符串放在屏幕的一角,这将让你开始。你可以通过删除和突出显示或其他任何东西来使它更好,但这是一个起点:
#!/bin/bash
screen_w=$(tput cols) # Get screen width.
screen_h=$(tput lines) # Get screen height.
str=$* # String to put in corner.
string_w=${#str}
let "x = $screen_w - $string_w"
tput sc # Save current position
tput cup $screen_h $x # Move to corner
echo -ne $str # Put string in the corner
tput rc # Go back to saved position.
echo " >" # Some kind of prompt
所以你可以设置你的提示来运行这个(我称之为上面的脚本pr.sh)
PS1=$(pr.sh $(date))
zsh
可能会有所不同,但我相信你可以解决这个问题。
只需将$(date)部分更改为status命令即可。 (pr.sh必须在你的道路上)
这有点笨拙,但它会让你开始。使用tput
可以做什么几乎没有限制!