首页 > 解决方案 > 如何将 bash 脚本中的多个输出行覆盖到终端中

问题描述

我有一个 kubernetes 命令kubectl get pods将这个输出打印到终端

 NAME                          READY   STATUS    RESTARTS   AGE
redis-cart-74594bd569-ffrhk   1/1     Running   0          40m

我希望此命令在 bash 脚本中每两秒重复运行一次。但是,我希望输出覆盖最后一个输入。

目前,我可以通过使用回车来覆盖一行(输出的第一行)。但它不会覆盖第二行。

如何从我的 bash 脚本中覆盖以前输出的文本?

通过脚本看起来像这样 atm

#!/bin/bash

variable=$(kubectl get pods)

while true
do
    variable=$(kubectl get pods)
    echo -ne "$variable" "\r"
    sleep 2
done
exit

标签: bash

解决方案


clear命令添加到循环中:

#!/bin/bash

variable=$(kubectl get pods)

while true
do
    variable=$(kubectl get pods)
    clear
    echo -ne "$variable" "\r"
    sleep 2
done

但是,您可以使用watch-w获得类似的结果,而无需特殊脚本。


推荐阅读