我刚开始在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
;;'
注意:此代码不适用于大学项目,也不适用于我的探索和学习。
答案 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; ^ __ ^