#!/bin/bash#该脚本是写一个简单的计算器read -p "请输入第一个数字" xread -p "请输入第二个数字" yread -p "请输入运算符号" f#最外层判断,判断输入的是否为空# -n 判断 是否为非空# -a 多重条件判断 与if [ -n "$x" -a -n "$y" -a -n "$f" ] then# 下面这个表达式用于判断输入的两个字符是否完全为数字,反引号 和 $()为同一个作用,将系统命令的值赋给变量,原理为,输出变量x的值,并利用管道符,将该值进行字符串替换, sed "s/旧字符串/新字符串/g",末尾g表示将指定范围内的所有旧字符串都替换,所以虽然[0-9]表示匹配一个字符,加了g以后,会替换所有字符。 test1=`echo "$x" | sed "s/[0-9]//g"` test2=$(echo "$y" | sed "s/[0-9]//g")#中间的判断,判断输入的两个值是否为数字 if [ -z "$test1" -a -z "$test2" ] then# 最内层判断,判断是什么运算符号 if [ "$f" == "+" ] then echo "$x和$y的和是"$[$x+$y] elif [ "$f" == "-" ] then echo "$x和$y的差是"$[$x-$y] elif [ "$f" == "*" ] then echo "$x和$y的积是"$[$x*$y] elif [ "$f" == "/" ] then echo "$x和$y的商是"$[$x/$y] fi else echo "您输入的不是数字,重新执行脚本" bash jisuanqi.sh exit 2 fi else echo "您没有输入数字,重新执行脚本" bash jisuanqi.sh exit 1fi