bash - Bash 中的退格

标签 bash backspace

如何将刚刚用 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/

相关文章:

bash - 从脚本并行 nmap 数千个子网的最佳方法是什么?

linux - 从 ssh 隧道上运行的命令获取返回码

vim - 如何在 Vim 中从命令模式退格?

android - 如何在android中的退格键上删除哪个字符

linux - 在 Bash 中执行 TAR 失败

arrays - 如何在远程 ssh bash 命令中迭代本地数组

linux - 管道到不接受管道的命令

java - 无法将 Control-Backspace 映射到 KeyStroke

ubuntu - 退格键不工作 Ubuntu gnome 16.04

c# - 在 WPF\C# 中模拟按下按钮时的退格键