Você tem essencialmente [ something != $bar ]
.
Se $bar
estiver vazio, isso se transforma em if [ something != ]
, o que obviamente não funciona, já que o teste de igualdade requer dois operandos. Embora pelo menos o test
/ [
do Bash tenha uma maneira engraçada de afirmar isso: aparentemente ele verifica o número de argumentos e, como há apenas dois, espera que o primeiro seja um operador unário.
O something
não é um, então ele reclama.
Então, coloque aspas em volta das variáveis :
if [ "$latest_sum_check" != "$EXISTING_SUM_CHECK" ]; then ...
E isso executa um comando EXISTING_SUM_CHECK
com o sinal de igual e o que vem da expansão da variável como parâmetros:
EXISTING_SUM_CHECK = $latest_sum_check;
Atribuições variáveis no shell não ocupam espaços ao redor delas.