请问如何读取“9 * 8”中的“*”字符?
写了一个计算器脚本,在计算乘法的时候始终报错。原因在于输入“9 * 8”字符时,无法用op=`echo $exp | cut -d ' ' -f 2`读取“*”,读取的结果是“aplusb”。但是做加减除(+ - /)运算则能够正确读取运算符。为何?求解。
#/bin/bash
#由用户输入计算表达式,程序给出计算结果
#1.提示用户该程序的功能
echo "由用户输入计算表达式,程序给出计算结果"
#2.用户输入操作数与操作符
read -p "开始新的计算吗?" yes
while [ "$yes" == "y" ]
do
read -p "请输入计算表达式(如8 + 9):" exp
num1=`echo $exp | cut -d ' ' -f 1`
num2=`echo $exp | cut -d ' ' -f 3`
op=`echo $exp | cut -d ' ' -f 2`
echo $op #结果为aplusb
#3.根据用户输入的操作符,做相应的计算
if [ "$op" == "+" ]; then
sum=$(($num1+$num2)) && echo "$num1 $op $num2 = $sum"
elif [ "$op" == "-" ]; then
sum=$(($num1-$num2)) && echo "$num1 $op $num2 = $sum"
elif [ "$op" == "*" ]; then
sum=$(($num1*$num2)) && echo "$num1 $op $num2 = $sum"
elif [ "$op" == "/" ]; then
sum=$(($num1/$num2)) && echo "$num1 $op $num2 = $sum"
else
echo "非法的操作符"
fi
read -p "开始新的计算吗?" yes
done
#/bin/bash
#由用户输入计算表达式,程序给出计算结果
#1.提示用户该程序的功能
echo "由用户输入计算表达式,程序给出计算结果"
#2.用户输入操作数与操作符
read -p "开始新的计算吗?" yes
while [ "$yes" == "y" ]
do
read -p "请输入计算表达式(如8 + 9):" exp
num1=`echo $exp | cut -d ' ' -f 1`
num2=`echo $exp | cut -d ' ' -f 3`
op=`echo $exp | cut -d ' ' -f 2`
echo $op #结果为aplusb
#3.根据用户输入的操作符,做相应的计算
if [ "$op" == "+" ]; then
sum=$(($num1+$num2)) && echo "$num1 $op $num2 = $sum"
elif [ "$op" == "-" ]; then
sum=$(($num1-$num2)) && echo "$num1 $op $num2 = $sum"
elif [ "$op" == "*" ]; then
sum=$(($num1*$num2)) && echo "$num1 $op $num2 = $sum"
elif [ "$op" == "/" ]; then
sum=$(($num1/$num2)) && echo "$num1 $op $num2 = $sum"
else
echo "非法的操作符"
fi
read -p "开始新的计算吗?" yes
done
...全文
相关推荐
python读取txt文件中特定位置字符的方法
今天小编就为大家分享一篇python读取txt文件中特定位置字符的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
PB9转换utf-8例子
PB9及以下版本没有直接转换字符编码的函数或方法,本例子使用ADODB.Stream进行转换。
编写一个程序接受用户输入的字符。如果输入的字符是0-9数字中的一个,则显示“您输入了一个数字”,否则显示“这不是一个数字”。
编写一个程序接受用户输入的字符。如果输入的字符是0-9数字中的一个,则显示“您输入了一个数字”,否则显示“这不是一个数字”。 提示:建一个数字数组,存储0-9;用循环把输入字符和这个数组比较,检查字符是否在数组里。
8*8点阵字符显示多样文字
使用PROTUSE仿真软件,完成8*8点阵字符多样显示文字的控制
c读取一行字符串,以及c++读取一行字符串的实例
今天小编就为大家分享一篇c读取一行字符串,以及c++读取一行字符串的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


