Я изучаю BASH через HackerRank. Это упражнение, в котором заданы длины треугольника, и тогда вам нужно найти, является ли треугольник равнобедренным, скалярным или равносторонним. I написал следующий код:"Ошибка: слишком много аргументов" в BASH
read a
read b
read c
if [ [ "$a" -eq "$b" ] && [ "$b" -eq "$c" ] ]
then
echo "EQUILATERAL"
elif [ [ "$a" -eq "$b" ] || [ "$b" -eq "$c" ] ]
then
echo "ISOSCELES"
else
echo "SCALENE"
fi
Но тогда я получаю следующее сообщение об ошибке
solution.sh: line 4: [: too many arguments
solution.sh: line 7: [: too many arguments
solution.sh: line 7: [: too many arguments
Почему это происходит? Я пытался долго и упорно, чтобы исправить это, но ничего не вышло
Хм, я не уверен, как это работает. Я попытался запустить его через терминал, но он не работает - он дает мне ту же ошибку, что и вы, но он также всегда выводит «SCALENE». –
попробуйте использовать '-a' и' -o' вместо '&&' и '||'.они доступны только вне условий, окруженных '[...]'. Кроме того, в состоянии могут возникнуть некоторые проблемы с '[...]'. возможно, используйте paranthesis '(...)' для инкапсуляции подгоночных условий. –
Я добавил -a и -o и вместо 3,2 ошибок появился. Но они были теми же ошибками. –