Unix - 使用shell脚本的简单计算器[已编辑]

时间:2016-02-22 19:31:04

标签: linux shell unix

我刚开始在Unix OS中使用shell编写一个简单的脚本,我试着先编写一个简单的计算器代码,代码让用户选择一个操作(加法,减法等)它将保存为变量(选择)然后,让用户插入任意两个数字,最后将这些数字保存为变量(num1和num2),执行操作,检查代码以获取更多信息

echo "+--------------------+"
echo "| Simple Calculator  |"
echo "+--------------------+"
echo "This shell is a simple calculator that takes two numbers from user, perform math operation then return the results"
echo Please choose an operation from the following:
echo 1,Addition
echo 2,Subtraction
echo 3,Multiplication
echo 4,division
echo Please choose an operation
read choice
echo Please insert the 1st number:
read num1
echo Please insert the 2ed number:
read num2
case $choice
1) echo "The result of addition operation is:`expr $num1 + $num2`;;
2) echo The result of Subtraction operation is:`expr $num1 - $num2`;;
3) echo The result of Multiplication operation is:`expr $num1 \* $num2`;;
4) echo The result of Division operation is:`expr $num1 \/ $num2`;;
*) echo invalid operation, please try again;;
esac

不幸的是,即使我做了一些更改,代码仍然无法正常工作,它仍然显示此错误:

./ shell.sh:line 16:意外标记1' ./shell.sh: line 16:附近的语法错误1)echo添加操作的结果是:expr $num1 + $num2 ;;'

注意:此代码不适用于大学项目,也不适用于我的探索和学习。

3 个答案:

答案 0 :(得分:1)

您的case语法错误。

http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_03.html

解释了如何使用case;既然你想要做的事情并没有从你的源代码中变得清晰,我真的无法向你提供有关如何做到这一点的更多信息:(

答案 1 :(得分:0)

为了好玩:

#!/bin/bash
echo "Better calculator"
while read -r -p 'Enter expression (CTRL-C or CTRL-D for end)> ' exp
do
    echo "$exp =" $(bc -l <<< "$exp")
done

或只需输入命令提示符:

bc -l

但可能你的老师想要不同的东西...... :)。

答案 2 :(得分:0)

所以我现在知道我的错误:D

我的错误出现在第15行,我应该将其放入&#39;选择后

&#34; case $ choose in&#34; - &GT;当你使用&#34; case&#34;

时,这一点非常重要 简单吧! - &GT;这让我疯了一会儿&#34; ^ __ ^