用shell寫一個簡易計算器,能夠實現加、減、乘、除運算,假如腳本名字爲1.sh,執行示例:./1.sh 1 + 2shell
#!/bin/bash if [ $# -ne 3 ] then echo "參數個數應該爲3,例如:$0 1 + 2" echo "當使用乘法時,須要加上脫義符號,例如:$0 1 \* 2" exit 1; fi num1=`echo $1|sed 's/[0-9.]//g'` if [ -n "$num1" ] then echo "$1不是數字" exit 1 fi num3=`echo $3|sed 's/[0-9.]//g'` if [ -n "$num3" ] then echo "$3不是數字" exit 1 fi case $2 in +) echo "scale=2;$1+$3" | bc ;; -) echo "scale=2;$1-$3" | bc ;; \*) echo "scale=2;$1*$3" | bc ;; /) echo "scale=2;$1/$3" | bc ;; *) echo "$2 不是運算符" ;; esac
解析:bash
$# 參數的數量ide
$0 當前執行的進程名spa
num1 -ne num2 不等於 [ 3 -ne $mynum ]進程
-n string 若是 string長度非零,則爲真 [ -n "$myvar" ]字符串
sed '【n1,n2】【[0-9a-zA-Z]】s/源字符串/目標字符串/g' filename
這裏n1,n2是指區間n1到n2行,「s」就是替換的命令,「g」爲本行中全局替換,若是不加‘g’,則只替換該行中出現的第一 個。除了可使用「/」做爲分隔符外,還可使用其餘特殊字符如「#」或者「@」。string
bc命令是一種支持任意精度的交互執行的計算器語言。bash內置了對整數四則運算的支持,可是並不支持浮點運算,而bc命令能夠很方便的進行浮點運算。參數scale=2是將bc輸出結果的小數位設置爲2位it
使用case,若是$2爲+,輸出echo "scale=2;$1+$3" | bcclass
依次論推sed
若是$2不是加減乘除任一狀況,則輸出echo "$2 不是運算符"