根据我的理解,许多程序使用stdout返回行来动画它们的命令行输出(stderr或\r )。例如,apt-get update将更新包下载百分比,或者docker-compose up将显示正在更新和/或启动的容器列表。当然还有成千上万的其他例子。

我需要以下内容:对于每一行更新,实际上在新行上重写这一行。因此,让我们以上面显示的gif为例,我想要这样的东西:
buntu-22.04.2-deskt 0%[ ] 25,59M 11,5MB/s
untu-22.04.2-deskto 0%[> ] 30,68M 11,5MB/s
ntu-22.04.2-desktop 0%[> ] 35,21M 11,5MB/s
tu-22.04.2-desktop- 0%[=> ] 40,47M 11,5MB/s
... 我该怎么做?请注意,我希望它适用于任何使用此功能的程序。
我试过:command | tr '\r' '\n',但这不管用。
发布于 2023-04-24 20:57:58
诅咒只是使用任何终端支持。对于Linux和其他类似Unix的系统,它将使用ANSI序列。
例如,在命令行中尝试printf "\033[17;62H"。您会发现光标将转到第17行第62列。
如果您查看维基百科条目ANSI转义码并向下滚动到CSI (Control Sequence Introducer) sequences,您将看到所需的内容。
我建议您查看整个页面,因为您可以做很多事情,只有正确的字符序列。
https://unix.stackexchange.com/questions/743850
复制相似问题