gpt4 book ai didi

bash - 仅当重定向到管道或文件时,awk 没有输出

转载 作者:行者123 更新时间:2023-12-05 00:59:08 28 4
gpt4 key购买 nike

我有一个相当简单的脚本(在每行添加时间戳后从 tty 打印内容)。它在命令行上输出很好,但是用 > 重定向输出不起作用。为什么不呢?

这是脚本:

#!/bin/bash
awk '{ print strftime("%Y-%m-%d %H:%M:%S |"), $0; }' "$1"

按原样运行它,就像 timecat/dev/ttyACM0 工作正常,我在终端中看到了内容。

但如果我运行 timecat/dev/ttyACM0 > ~/tmp.log,则什么也没有。与 tee 相同。文件在那里,但它是空的。

脚本中的 awk 有什么奇怪的地方,我该如何修改它以使重定向工作?

最佳答案

所需要做的就是在命令中刷新打印,将最后一个脚本行替换为:

awk '{ print strftime("%Y-%m-%d %H:%M:%S |"), $0; fflush(); }' $tty
^^^^^^^^^

关于bash - 仅当重定向到管道或文件时,awk 没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54450368/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com