Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста разобраться с задачкой в командной строке linux (виртуальная машина) или онлайн-компиляторе (bash )

Julls Ученик (107), закрыт 1 год назад
Создать скрипт, вычисляющий сумму двух чисел, если первое из них больше второго, и произведение в обратном случае. В командную строку выводится результат арифметической операции.

Есть два варианта скрипта и ни один не работает в линуксе на виртуальной машине (можно сделать в онлайн компиляторе на bash)
(1)
echo Введите два числа
read a
read b
read C
if [ "$a" -gt "$b"]
then let C=a+b
echo $C
else let C=a*b
echo $C
fi
----------------------------------
(2)
echo Введите два числа
read a
read b
if [ $a > $b ]
then G=$(echo "$a+$b" | bc)
fi
if [ $a < $b ]
then G=$(echo "$a*$b" | bc)
echo $G
fi
Лучший ответ
Граф Планарный Мудрец (12614) 1 год назад
 echo "Input two numbers:" 
read a ; read b
res=0
if [ "$a" -gt "$b" ]
then
res=$(($a + $b))
fi
if [ "$a" -le "$b" ]
then
res=$(($a * $b))
fi
echo "Result is: $res"
Остальные ответы
Виктор Мальков Мудрец (10309) 1 год назад
В первом не хватает пробела перед закрывающей квадратной скобкой. И лишний ввод переменной C.
Чтобы работал второй, надо:
  • на машину установить программу bc
  • квадратные скобки [ ] заменить на двойные квадратный скобки [[ ]]
  • вывод $G вынести за условный оператор (или сделать вывод в обеих ветвях)
Павел Сергеевич Ильин Мудрец (14616) 1 год назад
В первом не хватает пробела перед закрывающей квадратной скобкой. И лишний ввод переменной C.
Чтобы работал второй, надо:

на машину установить программу bc
квадратные скобки [ ] заменить на двойные квадратный скобки [[ ]]
вывод $G вынести за условный оператор (или сделать вывод в обеих ветвях)
Похожие вопросы