首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令的一行输出。

命令的一行输出。
EN

Unix & Linux用户
提问于 2018-01-18 20:51:04
回答 2查看 1.7K关注 0票数 1

有几个命令在控制台中执行某些操作(ffmpeg或fsarchiver)时会在控制台中打印一些状态行。

代码语言:javascript
复制
-[00][  0%][DIR     ] /boot/grub/fonts
-[00][  0%][REGFILE ] /boot/grub/fonts/unicode.pf2
-[00][  0%][REGFILEM] /boot/grub/grubenv
-[00][  0%][REGFILEM] /boot/grub/grub.cfg
-[00][  0%][REGFILE ] /boot/initrd.img-4.13.0-16-generic

现在,我想构建一个使用这些命令的脚本,但是输出会非常快地清除脚本消息。我知道还有其他命令,比如新的apt或wget,它们在一行中显示了不断更新的进度。

我已经在脚本中使用了这样的一行状态行,发现不用换行符\n,我需要放置回车\r,这完全是有意义的。

然后,我尝试对命令(ffmpeg或fsarchiver)执行同样的操作,将输出传递到tr "\n" "\r"。但我发现这并没有改变什么。

有没有办法从这样的命令中得到一行状态行?

问候

EN

回答 2

Unix & Linux用户

发布于 2018-01-18 22:17:56

这是一个缓冲问题:

代码语言:javascript
复制
while true; do date; sleep 1; done | stdbuf --output=0 tr '\n' '\r'
票数 1
EN

Unix & Linux用户

发布于 2018-01-18 20:59:25

听起来你基本上回答了你自己的问题。当您将输出输送到tr时,您是否同时输送了stdoutstderr

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/418102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档