O comando test
, também chamado [
, tem operadores separados para comparações de strings e comparações de inteiros :
INTEGER1 -eq INTEGER2
INTEGER1 is equal to INTEGER2
vs
STRING1 = STRING2
the strings are equal
e
STRING1 != STRING2
the strings are not equal
Como seus dados não são estritamente um inteiro, seu teste precisa usar o operador de comparação de strings. A última realização nos comentários foi que a lógica "-eq" não correspondia ao sentido das instruções if / else echo
, portanto, o novo snippet deveria ser:
...
if [ "$x" != "$y" ]
then
echo There is version $y update
else
echo Version $x is the latest version
fi