Linux 循环将当前日期与文件中的日期进行比较时出现问题

Linux 循环将当前日期与文件中的日期进行比较时出现问题,linux,bash,algorithm,shell,Linux,Bash,Algorithm,Shell,我想将当前日期与文件中的日期进行比较[每30秒一次,在后台] 我不知道我是要做一个无限循环还是一个读线循环。。。 因此,当前日期与文件日期的每一次匹配,我都会打印xmessage中匹配的当前行。 (我使用./script.sh 0138 test添加日期) 此表单中的日期为0138:+%H%M 我已经试过了,但我的循环在文件中的第一个日期只运行一次。只有一个xmessage窗口打开如何为每个添加的日期执行此操作? while true do currentDate="$(dat

我想将当前日期与文件中的日期进行比较[每30秒一次,在后台] 我不知道我是要做一个无限循环还是一个读线循环。。。 因此,当前日期与文件日期的每一次匹配,我都会打印xmessage中匹配的当前行。 (我使用./script.sh 0138 test添加日期) 此表单中的日期为0138:+%H%M

我已经试过了,但我的循环在文件中的第一个日期只运行一次。只有一个xmessage窗口打开如何为每个添加的日期执行此操作?

while true
do
    currentDate="$(date +%H%M)"  
    futureDate="$(cat test.txt | cut -d ' ' -f 1 | grep "${currentDate}" | head -n 1)"
    printLine="$(cat test.txt | grep "${currentDate}")"

    if test "${currentDate}" = "${futureDate}"
    then
        xmessage "${printLine}" -buttons Ok -geometry 400x100 -center
    fi
    sleep 30
done &
文件示例:test.txt

0142 test xmessage
0143 test other xmessage
0144 other test
0145 other xmessage !

谢谢你帮助我

您的主要问题是执行会暂停,直到您通过单击“确定”来“确认”消息

您可以通过分离xmessage来解决这个问题(在行尾放一个符号:

xmessage -buttons Ok -geometry 400x100 -center "${printLine}"&

您的主要问题是,在单击OK“确认”消息之前,执行会停止

您可以通过分离xmessage来解决这个问题(在行尾放一个符号:

xmessage -buttons Ok -geometry 400x100 -center "${printLine}"&

您是否通过单击“确定”来确认xmessage的一个窗口?如果否,这是您的主要问题;执行将停止,直到您通过单击“确定”来“确认”消息。您可以通过a)分离xmessage来解决此问题(在行尾放置一个符号-
xmessage-按钮确定-几何体400x100-居中“${printLine}”和
或b)给xmessage一个超时
xmessage-timeout 10-按钮Ok-geometry 400x100-居中“${printLine}”
…谢谢。效果很好。我第一次使用xmessage:)我怀疑是xmessage出了问题,但我不知道如何解决这个问题。很酷,我将此评论作为一个答案。您是否通过单击“确定”确认xmessage的一个窗口?如果没有,那是你的主要问题;执行将停止,直到您通过单击“确定”来“确认”消息。您可以通过a)分离xmessage(在行的末尾放置一个符号-
xmessage-buttons Ok-geometry 400x100-center“${printLine}”&
或b)给xmessage一个超时
xmessage-timeout 10-buttons Ok-geometry 400x100-center“${printLine}”
…谢谢。它工作得很好。我第一次使用xmessage:)我怀疑xmessage是问题所在,但我不知道如何解决这个问题。很酷,我回答了这个问题。