1、运算符号
+ ##加法
- ##减法
* ##乘法
/ ##除法
% ##除法后的余数
** ##乘方
++ ##自加一
-- ##自减一
< ##小于
<= ##小于等与
> ##大于
>= ##大于等与
= ##等于
+= j+=i ##j=j+i
*= ##j=j*i
/= ##j=j/i
%= ##j=j%i
2、运算指令
(( )) ##((a=1+2))
let ##let a=1+2
expr ##expr 1 + 2
bc
bc << EOF
1+2
EOF
$[ ] ##echo $[1+2]
printf '%0.2f' .3 ==== 0.30
printf '%0.3f' .3 ====0.300
printf '%0.4f' .3 ====0.3000
脚本练习:算出mem总和
[root@westos137 mnt]# cat mem.sh
#!/bin/bash
ps ax -o %mem|awk 'BEGIN{N=0}!/MEM|0.0/{N+=$1}END{print "memory: "N"%"}'
脚本练习:10以内的猜数字游戏
[root@westos137 mnt]# cat luck_number.sh
#!/bin/bash
LUCK=$[$RANDOM%10]
while true
do
read -p "please input number:" NUM
if [ "$NUM" = "exit" ]
then
exit
elif [ $NUM = $LUCK ]
then
echo "$NUM is the luck number!!"
exit
elif [ $NUM -lt $LUCK ]
then
echo "$NUM is too small!"
elif [ $NUM -gt $LUCK ]
then
echo "$NUM is too big!!"
fi
done
脚本练习:70秒倒计时
[root@westos137 mnt]# cat time.sh
#!/bin/bash
MIN=1
SEC=10
TIME=$[$MIN*60+$SEC]
for((;TIME>0;TIME--))
do
M=$[$TIME/60]
S=$[$TIME%60]
if [ $S -lt "10" ]
then
echo -n "$M:0$S"
echo -ne "\r"
sleep 1
elif [ $S -ge "10" ]
then
echo -n "$M:$S"
echo -ne "\r"
sleep 1
fi
done