Этот вопрос здесь уже есть ответ:
Я пишу команду, которая приведена ниже.
if ["$avg" -ge "80"]; then
echo "PASS"
else
echo "FAIL"
Я получаю сообщение об ошибке:
x.0000000000000000 integer expression expected
and the result of if -else statement is always wrong.
Пожалуйста, помогите и предложите необходимые изменения.
#!/bin/bash
# .........
# ........
if [ $avg -ge 80 ]
then
echo "PASS"
else
echo "FAIL"
fi
Как предложено Steeldriver , используйте shellcheck
. Вы можете установить его с помощью
sudo apt install shellcheck
Использовать его с
shellcheck myscript.sh
В вашем случае вы получите следующий вывод:
In myscript.sh line 1:
if ["$avg" -ge "80"]; then
^-- SC1009: The mentioned parser error was in this if expression.
^-- SC1035: You need a space after the [ and before the ].
^-- SC1073: Couldn't parse this test expression.
^-- SC1020: You need a space before the ].
^-- SC1072: Missing space before ]. Fix any mentioned problems and try again.