Deve ser:
if [ "${GtkTheme}" != "${NightTheme}" ] && ((${TimeHr}>=19 || ${TimeHr}<=5)); then
sem o segundo if
entre as condições. A condição em uma instrução if
é um comando composto, que pode incluir if
s adicional, o que provavelmente está causando o problema aqui.
Exemplo:
if true && if true; then false; fi; then echo foo; else echo bar; fi
é agrupado como
if (true && (if true; then false; fi)); then echo foo; else echo bar; fi
Aqui, estou usando ()
para mostrar o agrupamento, não para indicar subpastas.