Como posso limitar as vezes que um script é executado a partir do tmux?

0

Eu tenho um script que mostra um site e me diz quanto tempo trabalhei na semana. Eu quero que seja na barra de status no meu tmux.conf , mas estou tendo o problema do script rodando uma vez a cada segundo, o que obviamente inunda a rede. Existe uma maneira de impedir que isso aconteça sem mostrar o texto tmux <"cmd" not ready> ?

Atualmente no meu tmux.conf , tenho este comando.

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

Mas quando é executado, recebo

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

Existe uma maneira de preservar a última vez que foi executada e suprimir essa mensagem? Obrigado.

    
por Tristin Baker 15.06.2018 / 19:32

1 resposta

0

Você pode modificar seu script time.zsh para armazenar em cache o resultado em um arquivo, e cada script é chamado, testará a idade do arquivo.

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
    
por 16.06.2018 / 18:15