如何限制脚本在 tmux 中运行的次数?

如何限制脚本在 tmux 中运行的次数?

我有一个脚本可以 ping 一个网站并告诉我一周工作了多少时间。我希望它出现在我的状态栏中tmux.conf,但我遇到了脚本大约每秒运行一次的问题,这显然会淹没网络。有没有办法在不<"cmd" not ready>显示tmux 文本的情况下限制这种情况的发生?

目前在我的 中tmux.conf,我有这个命令。

set -g status-right '#[fg=colour6,bold]#(watch -n 60 zsh ~/directory/src/directory/scripts/time.zsh)'

但是当它运行时,我得到

<'watch -n 60 zsh ~/directory/src/directory/scripts/time.zsh' not ready>

有没有办法保留它上次运行的时间并抑制此消息?谢谢。

答案1

您可以修改脚本 time.zsh 以将结果缓存在一个文件中,并且每次调用脚本时都会测试该文件的寿命。

CACHE_OUTPUT=/tmp/resul-cache.txt
AGE_TO_CACHE=10
if [ $(( $( stat --format=%Y $CACHE_OUTPUT ) + $AGE_TO_CACHE )) -gt $( date +%s ) && echo too old ) ] ;
then
    cat $CACHE_OUTPUT
    exit 0
fi
(
    # where you fetch 
    # ...
    # 
) > $CACHE_OUTPUT

相关内容