代码之家  ›  专栏  ›  技术社区  ›  Itai Ganot

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

  •  0
  • Itai Ganot  · 技术社区  · 8 年前

    我编写了以下bash函数:

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

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

    编辑: 以下是我在脚本中使用函数的方式:

    log ls -l
    

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

    如何做到这一点?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Würgspaß    8 年前

    我希望在添加时将输出同时发送到控制台和日志 日期和时间仅限于日志中命令本身的行

    我想您需要一些执行和记录命令的函数。可能是这样的:

    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
    
    推荐文章