我的 bash 脚本如下所示:
echo "Description:"
while [ $finishInput -eq 0 ]; do
read tmp
desc="$desc"$'\n'"$tmp"
if [ -z "$tmp" ]; then
finishInput="1"
fi
done
echo -n "Maintainer:"
read maintainer
它读取 desc var 直到传递一个空行。之后,我想阅读其他内容。
当执行我当前的脚本时,它看起来像这样:
Description:
Line 1
Line 2
Maintainer:
我想用“维护者:”覆盖最后一个空行。
我搜索了一个解决方案,但只找到类似的建议
echo -n "Old line"
echo -e "\r new line"
保留在行上并覆盖它。这对我来说是不可能的。
最佳答案
在您的示例中,您删除了同一行的文本。当您想返回上一行时,请使用 \e[1A
, 要清除该行,请使用 \e[K
:
echo 'Old line'
echo -e '\e[1A\e[Knew line'
想去的时候N
排队,使用\e[<N>A
关于bash - 覆盖终端上的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11283625/