【问题标题】:grab last n lines from console output从控制台输出中获取最后 n 行
【发布时间】:2010-12-14 23:08:52
【问题描述】:

我想制作一个 shell 脚本,它可以有效地从 sterr 和 stin 中抓取输出到控制台的最后 n 行。我有一个屏幕会话正在运行一个进程,如果它通过一个骇人听闻的无限循环崩溃,它将重新启动它:

#!/bin/bash
#This script will be started in a screen session
counter=0
while [ $counter -lt 10 ]; do
    ./run_some_process;
     last_output=#GRAB PREVIOUS OUTPUT FROM CONSOLE HERE AND LOG TO FILE
     echo -e "$last_output" >> mylog.txt;
    sleep 5; #sleep for a few seconds before restarting
done

我需要的是第 7 行代码从 stderr 和 stdin 中获取最后 10 行左右并将它们附加到日志文件中

【问题讨论】:

    标签: bash shell logging gnu-screen


    【解决方案1】:
     ./run_some_process 2>&1 | tail -10 >>logfle
    

    tail -10 会给你最后十行,2>&1 将 stderr 重定向到 stdout,>>logfle 附加到日志文件。

    【讨论】:

    • 谢谢!一个小小的变化:./run_some_process 2>&1 | tail -10 >>logfle 看起来 stderr 需要转到 stdout 才能进入管道。
    • 哦,是的,对不起,我的错误^^"
    猜你喜欢
    • 2022-12-12
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 2011-10-20
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多