如何将命令的命令和输出同时输出到控制台和日志?

时间:2017-12-13 10:10:09

标签: bash logging

我写了以下bash函数:

function log {
    echo "[$(date -u +'%Y-%m-%dT%H:%M:%S.000')]: $*" | tee -ai  $logfile
}

强制命令的输出将打印到控制台和日志中。

修改 这就是我在脚本中使用该函数的方法:

log ls -l

实际上,日志包含命令而不是它们的输出,而我希望输出同时到控制台和日志,同时只将日期和时间添加到日志中命令本身的行。

怎么做?

1 个答案:

答案 0 :(得分:2)

  

我希望输出在添加时同时进入控制台和日志   日期和时间仅限于日志

中命令本身的行

我想你要求执行一些执行和记录命令的功能。它看起来像这样:

function executeAndLog {
    echo "[$(date -u +'%Y-%m-%dT%H:%M:%S.000')]: $@" | tee -ai  logfile.txt
    "$@" | tee -ai  logfile.txt
}

executeAndLog ls logfile.txt

将这两者输出到日志和控制台

[2017-12-13T10:38:40.000]: ls logfile.txt
logfile.txt