Я написал сценарий оболочки с регистром переключения и использует опции 1-5 и выполняет операции с переменными соответственно.
Мой код работает нормально, хотя есть небольшое изменение, которое я хотел бы внести в мой код.
Когда код вводит аргумент регистра по умолчанию, после этого он по-прежнему запрашивает «Введите два числа», а затем печатает «Недопустимый параметр», что неуместно. В идеале код должен прекратиться после неверного параметра.
Я только что изучил сценарии оболочки, поэтому я не очень хорош в этом.
Я скопировал и вставил мой исходный код ниже:
#! /bin/bash
echo "1. Add
2.Substract
3.Divide
4.Multiply
5.Quit"
read -p "Enter an option:" option
read -p "Enter two numbes: " first second
case $option in
1)income=$[ first + second ];;
2)income=$[ first - second ];;
3)income=$[ first / second ];;
4)income=$[ first * second ];;
*)echo "Invalid Option";
exit 1;;
esac
echo "Income=$income"
exit 0
Я пытался использовать if, иначе ... но это не служит цели.
* Альтернативный подход: *
#! /bin/bash
echo "1. Add
2.Substract
3.Divide
4.Multiply
5.Quit"
read -p "Enter an option:" option
if [ option > 5 ]
then
echo "Invalid Option"
exit 1
else
read -p "Enter two numbes: " first second
fi
case $option in
1)income=$[ first + second ];;
2)income=$[ first - second ];;
3)income=$[ first / second ];;
4)income=$[ first * second ];;
*)echo "Invalid Option";
exit 1;;
esac
echo "Income=$income"
exit 0