O seguinte testa se o fuso horário local foi alterado desde ontem:
[ "$(date -d "yesterday" '+%z')" = "$(date '+%z')" ]
O formato %z
solicita a data para retornar o fuso horário. O acima compara o resultado de hoje com o resultado de ontem.
Como usar
O comando de teste pode ser usado para controlar a execução de instruções:
$ [ "$(date -d "yesterday" '+%z')" = "$(date '+%z')" ] && echo "No change"
No change
Ou
$ if [ "$(date -d "yesterday" '+%z')" = "$(date '+%z')" ]; then echo "No change"; fi
No change
Como funciona
A saída do formato %z
é semelhante a:
$ date '+%z'
-0800
$ date -d yesterday '+%z'
-0800
O acima indica um atraso de 8 horas atrás do GMT. Esse atraso depende se estamos no horário de verão ou no horário padrão. Por exemplo:
$ date -d "nov 1, 2014" '+%z'
-0700
[
indica o comando text
do bash. O comando a seguir compara os resultados de hoje versus ontem:
[ "$(date -d "yesterday" '+%z')" = "$(date '+%z')" ]