bash - 如何将 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
解决方案
将clear
命令添加到循环中:
#!/bin/bash
variable=$(kubectl get pods)
while true
do
variable=$(kubectl get pods)
clear
echo -ne "$variable" "\r"
sleep 2
done
但是,您可以使用watch
或-w
获得类似的结果,而无需特殊脚本。
推荐阅读
- sap-cloud-sdk - 如何在 SAP Cloud SDK 3.0 及更高版本中获取用户信息和权限
- ios - CBCentralManager,didConnect 外围设备:永远不会被调用
- uitextfield - Swiftui TextField onkeypress
- excel - VBA中的函数给我素数不起作用
- apache-kafka - 动物园管理员卡夫卡
- javascript - 想在按回车但重新加载时发送消息
- javascript - 为什么控制台显示typeError?
- wordpress - 如何从 Wordpress API 获取数据?
- go - 如何在数学/大浮点数中进行舍入?
- npm - 如何在 jalali 日历中找到公共日