我想一遍又一遍地写多行.就像是
echo "One Line"
echo "Two Lines"
echo "\r\b\rThree Lines"
echo "Four Lines"
Run Code Online (Sandbox Code Playgroud)
理想情况下,这将首先输出:
One Line
Two Lines
Run Code Online (Sandbox Code Playgroud)
然后将此输出替换为
Three Lines
Four Lines
Run Code Online (Sandbox Code Playgroud)
麻烦的是,虽然回车会让你覆盖一行输出,但是你不能通过\ b来越过\n.然后我如何覆盖多行?
jrb*_*ano 11
我找到了一个解决这个问题的解决方案,但我仍然不完全确定这个解决方案是如何工作的.但是,似乎程序tput将允许您获取清除行和光标定位的特殊字符.具体来说,tput el将清除当前行的开头(而不是仅重新定位光标).方便的是,tput cuu1将光标向上移动一行.因此,如果在bash脚本中声明变量,例如:
UPLINE=$(tput cuu1)
ERASELINE=$(tput el)
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样写一个脚本:
UPLINE=$(tput cuu1)
ERASELINE=$(tput el)
echo "One Line"
echo "Two Lines"
echo "$UPLINE$ERASELINE$UPLINE$ERASELINE\c"
echo "Three Lines"
echo "Four Lines"
Run Code Online (Sandbox Code Playgroud)
你会得到所需的输出.
| 归档时间: |
|
| 查看次数: |
1493 次 |
| 最近记录: |