加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 为tee’d输出添加时间戳,但不是原始输出

发布时间:2020-12-15 22:39:21 所属栏目:安全 来源:网络整理
导读:我正在写一个小预算脚本来关注我的财务状况.我想记录我的所有交易以及它们何时发生. 目前,我输入支出作为参数: f) echo "$OPTARG spent on food" | tee spendinglogs.log ... # take away money from monthly budget echo "$REMAINING_FOOD_BUDGET remainin
我正在写一个小预算脚本来关注我的财务状况.我想记录我的所有交易以及它们何时发生.

目前,我输入支出作为参数:

f)
    echo "$OPTARG spent on food" | tee spendinglogs.log
    ... # take away money from monthly budget
    echo "$REMAINING_FOOD_BUDGET remaining" | tee spendinglogs.log

m)
    echo "$OPTARG spent on miscellaneous" | tee spendinglogs.log
    ... # take away money from monthly budget
    echo "$REMAINING_MISC_BUDGET remaining" | tee spendinglogs.log

... #etc

我不想将输出时间戳到终端,但我确实想要将输出时间戳到日志.有没有办法做到这一点?

例如

echo "$OPTARG spent on food" | tee `date %d-%m-%y %H_%M_%S` spendinglogs.log

但我无法想象工作.

解决方法

编辑:测试和更新正确的信息

查看moreutils包中的ts.

如果您正在使用bash,则可以将shell管道作为文件传输:

echo "$OPTARG spent on food" | tee >(ts "%d-%m-%y %H_%M_%S" > spendinglogs.log)

我之前的回答正确地陈述了上述,正确的答案,但也是一个不正确的使用小便,也来自moreutils. pee在将stdin发送到输出管道之前似乎缓冲了stdin,因此这不适用于时间戳(它将适用于时间不重要的命令).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读