如何将刚刚用 bash 编写的行退格并在其位置上放置一个新行?我知道这是可能的,Aptitude (apt-get) 将它用于一些更新内容,它看起来很棒。
最佳答案
试试这个:
$ printf "12345678\rABC\n"
ABC45678
如您所见,输出回车会将光标移动到同一行的开头。
你可以像这样清除行:
$ printf "12345678\r$(tput el)ABC\n"
ABC
使用 tput
为您提供了一种将控制字符发送到终端的可移植方式。有关控制代码的列表,请参见 man 5 terminfo
。通常,您需要将序列保存在一个变量中,这样您就不需要重复调用外部实用程序:
$ clear_eol=$(tput el)
$ printf "12345678\r${clear_eol}ABC\n"
ABC
关于bash - Bash 中的退格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4644350/