【发布时间】:2015-04-03 16:24:49
【问题描述】:
在 bash 中如何在同一点上打印信息???
例如,如果我想遍历假设根目录的所有子目录中的所有文件,并且我想在终端上打印所有信息总是在同一位置而不打印新行,我该怎么办??
目录示例
--> root
--> Dir 1
--> File 1
--> File 2
--> Dir 2
--> File 3
--> File 4
shell 输出必须是这样的:
Infos before that I don't want to clear
-------------------------------
Directory : dirName
File count : x
File : fileName
-------------------------------
“计数”将根据当前目录保持不变,但其他信息必须根据循环的当前子目录(元素)进行更改
提前致谢
【问题讨论】:
-
在每次迭代中做一个“清除”并打印整个事情怎么样?
-
如果这不是一个选项,那么您可以使用终端的 terminfo 代码在每次打印之前定位光标。
-
如果都在一行上,那么只需使用
\r而不是\n(可能使用printf,除非你想深入了解echo中的echo的奥秘bash) .如果它如图所示在多行上,您必须更加努力。您也可以调查tput命令;低级但有效。 -
我不能只做一个“清除”,因为我在要动态更改的块之前有一些有用的信息