Isso parece perfeito para mim. O que faz você pensar que deve ser melhorado?
De qualquer forma, maneiras de melhorar isso podem ser:
- Use um shell menor e mais rápido que o bash, como dash ou pdksh.
- use um shell com recursos de data incorporados como
zsh
ouksh93
- use
gawk
(que é menor que bash, mas não que traço, mas pode evitar a bifurcação extra):
Exemplo:
#! /usr/bin/gawk -f
BEGIN {now = strftime("%k%M")+0; exit(now > 200 && now < 2200)}