Ваш оператор if
должен выглядеть следующим образом:
if [[ $GRP1 -eq $GRP2 ]]
(есть несколько вариантов в зависимости от того, какую оболочку вы на самом деле используете, но я думаю, что, вероятно, наиболее переносимая - используйтесправочные страницы для вашей данной оболочки, чтобы узнать правильный формат, если это не работает).
if
принимает команду и проверяет возвращаемое значение из нее.Если первый аргумент, который вы даете, не является командой (например, переменная окружения, которая переводится в не-команду), он попытается запустить ее как команду и потерпит неудачу.
Вотрасшифровка bash
сценария:
pax$ cat qq.bash
#!/bin/bash
GRP1=$(expr 22 + 3)
GRP2=$(expr 100 / 4)
GRP3=$(expr 75 - 5)
if [[ $GRP1 -eq $GRP2 ]] ; then
echo "GRP1 and GRP2 are equal ($GRP1)"
else
echo "GRP1 and GRP2 are unequal ($GRP1, $GRP2)"
fi
if [[ $GRP1 -eq $GRP3 ]] ; then
echo "GRP1 and GRP3 are equal ($GRP1)"
else
echo "GRP1 and GRP3 are unequal ($GRP1, $GRP3)"
fi
pax$ ./qq.bash
GRP1 and GRP2 are equal (25)
GRP1 and GRP3 are unequal (25, 70)