其余的答案都很好,但只是想添加一些额外的信息,以防有人来这里寻找替换/更新多行回声的解决方案。
所以我想和大家分享一个例子。以下脚本在 CentOS 系统上尝试过,并使用“timedatectl”命令,该命令基本上打印系统的一些详细时间信息。
我决定使用该命令,因为它的输出包含多行,并且非常适合以下示例:
#!/bin/bash
while true; do
COMMAND=$(timedatectl) #Save command result in a var.
echo "$COMMAND" #Print command result, including new lines.
sleep 3 #Keep above's output on screen during 3 seconds before clearing it
#Following code clears previously printed lines
LINES=$(echo "$COMMAND" | wc -l) #Calculate number of lines for the output previously printed
for (( i=1; i <= $(($LINES)); i++ ));do #For each line printed as a result of "timedatectl"
tput cuu1 #Move cursor up by one line
tput el #Clear the line
done
done
以上将timedatectl
永远打印“”的结果,并将用更新的结果替换以前的回显。
我不得不提到,这段代码只是一个示例,但根据您的需要,可能不是最适合您的解决方案。执行几乎相同(至少在视觉上)的类似命令是“ watch -n 3 timedatectl
”。
但这是一个不同的故事。:)
希望有帮助!