Я заранее прошу прощения за вопрос для начинающих, но не могу заставить этот кусок кода работать должным образом. Меня попросили составить базовую программу, которая запрашивает у пользователя 3 числа, а затем проверяет, какое значение является наибольшим, и печатает результаты, а также проверяет, вставлены ли три числа. Это может определить, какое из них является самым высоким, и я получаю чтобы правильно выводить результаты, но я не могу понять, как заставить его проверить, что в него вставлено три числа.
Я провел исследование и даже извлек некоторый код из примера учителя о том, как проверить количество аргументов, но я все еще не могу заставить его работать.
#!/bin/bash
echo "Please enter three numbers:"
read a b c
if [ $# -ne 3 ]
then
echo "You need three numbers"
exit -1
fi
if [ $a -gt $b -a $a -gt $c ]
then
LARGEST=$a
elif [ $b -gt $a -a $b -gt $c ]
then
LARGEST=$b
elif [ $c -gt $a -a $c -gt $b ]
then
LARGEST=$c
elif [ $a -eq $b -a $a -eq $c -a $b -eq $c -eq $b ]
then
LARGEST="All three values are equal."
fi
echo "The largest values is $LARGEST"
Когда я ввожу три числа (7 8 9), я ожидаю получить обратно:
«Наибольшее значение 9»
однако я получаю это вместо:
./values.sh: line 6 [0: command not found
The largest value is 9
Я что-то упускаю здесь явно очевидным? Я знаю, что мне нужен оператор, чтобы мой оригинал работал, но я использую неправильный оператор?