其余的答案都很好,但是只是想添加一些额外的信息,以防有人来这里寻找替代/更新多行回声的解决方案。
因此,我想与大家分享一个例子。以下脚本在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
”。
但这是一个不同的故事。:)
希望有帮助!