Shell計算功能
Shell計算功能
- 使用$((計算式))
#!/bin/bash echo -n "Enter number : " read n sd=0 # store number of digit nd=0 on=$n # store $n so that we can use it later # use while loop to caclulate the number of digit while [ $n -gt 0 ] do sd=$(( $n % 10 )) # get Remainder n=$(( $n / 10 )) nd=$(( $nd + 1)) # calculate all digit in a number till n is not zero done echo "Numnber of digit in a $on is $nd"
- 使用"計算式|bc"
( while [ $ != 'x' ] do echo "Welcome to calculator (x to quit)" echo "Enter the first operand: " read value1 echo "Enter an operator (+, -, *, /): " read operator echo "Enter the second operand: " read value2 if [ " $ operator " = " + " ] ; then answer=$(echo "scale=2;value1+value2" |bc); elif [ " $ operator " = " - " ] ; then answer=$(echo " scale=2;value1-value2" |bc); elif [ " $ operator " = " / " ] ; then answer=$(echo "scale=2;value1/value2" |bc); elif [ " $ operator " = " * " ] ; then answer=$(echo "scale=2;value1*value2" |bc); elif [ " $ operator " = " % " ] ; then answer=$(echo "scale=2;value1%value2" |bc); fi echo "Answer: $value1 $operator $value2 = $answer"; done )
使用範例:
#!/bin/bash export memSize=`/usr/bin/free -m | grep Mem | awk '{print $2}'` export realUsed=`/usr/bin/free -m | grep + | awk '{print $4}'` echo $realUsed :: $memSize echo $(($realUsed*100/$memSize)) echo "$realUsed*100/$memSize"| bc
[appmanager@PTW-ES-SCHD-01 bin]$ ./mrtg-memory-real.sh 4595 :: 5579 82 82