Bash 如何仅获取shell脚本中的最新值?

Bash 如何仅获取shell脚本中的最新值?,bash,shell,Bash,Shell,我是初学者 我的日志文件将每30秒生成一次值。因为日志文件是从另一个系统生成的,我无法与该系统同步时间。 脚本文件的用途是每秒运行一次,以便在系统时间生成和更新脚本文件时,获取第2列中的最新值。 但是我被卡住了,如果日志文件在08:04:00之前停止,我的脚本文件会在系统时间内不断更新最终值。 我的问题是:当日志文件停止时,脚本文件将不再更新最后一个值,该怎么办 我的shell脚本 !/bin/bash prodStartTime="080000" prodEndTime=&

我是初学者

我的日志文件将每30秒生成一次值。因为日志文件是从另一个系统生成的,我无法与该系统同步时间。 脚本文件的用途是每秒运行一次,以便在系统时间生成和更新脚本文件时,获取第2列中的最新值。 但是我被卡住了,如果日志文件在08:04:00之前停止,我的脚本文件会在系统时间内不断更新最终值。 我的问题是:当日志文件停止时,脚本文件将不再更新最后一个值,该怎么办

我的shell脚本

!/bin/bash
prodStartTime="080000"
prodEndTime="080400"
TS_LOG=/home/uat/log/TL.log
currentTime=`date +"%H%M%S"`
if [[ $currentTime > $prodStartTime && $currentTime < $prodEndTime ]]
then
    a=$(tail -1 $TS_LOG | awk '{print $2}')
    b=$(echo $a | awk 'BEGIN{FIELDWIDTHS="2 2 2"}{print $1,$2,$3}' | sed 's; ;\:;g')
    if [[ $a != $currentTime ]]
    then
        date +%T -s $b
    fi
sleep 1
else
    exit 1
fi

您说您不能同步两个系统之间的时间,这意味着您不能从system2访问system1,反之亦然。那么,如何访问此日志文件?通常,当您同步时间时,您使用的是
ntp
,您是否检查了此脚本?由于此脚本,您实际上引入了更多的时间问题。您可以调用各种二进制文件(
awk
sed
date
),它们都是按时间加起来的,实际上是两个系统之间的时间偏移。我很确信,如果两个系统都正确同步,那么在不同的月份内都可以正常工作。@kvantour:因为日志文件将从另一家公司的系统发送,并且具有不同的时区。当我的系统收到此文件时,它将运行交易命令。但由于时区不同,传出事务会延迟。当然,他们不会让我们同步到他们的ntp服务器,所以我提出了这个临时解决方案。如果日志文件停止,你是什么意思?我的印象是你每30秒收到一份该文件的副本?@kvantour:Value将每30秒发送一次。我只需要得到8:00:00到08:04:00之间的值。当系统在08:04:00之前停止发送时,我的脚本文件将继续更新旧值。
-- 13:55:15.265
--BC=[391]  135515
-- 16:55:15.265
--BC=[391]  **165515**