运算方式和运算符号
运算符号 意义
+,- 加法,减法
*,/,% 乘法,除法,取余
** 幂运算
++,- - 自增加,自减少
<,<=,>,>= 比较符号
=,+=,-=,*=,/=,%= 赋值运算,例如a+=1,相当于a=a+1
常用运算
运算操作与运算命令 含义
(( )) 用于整数运算
let 用于整数运算,与(())类似
expr 用于整数运算,功能相对较多
bc linux 下的计算器,适合整数及小数运算
$[ ] 用于整数运算
[root@136 mnt]# a=1+2
[root@136 mnt]# echo $a
1+2
[root@136 mnt]# (( a=1+2 ))
[root@136 mnt]# echo $a
3
[root@136 mnt]# let a=2+2
[root@136 mnt]# echo $a
4
[root@136 mnt]# echo `expr 1 + 1`
2
[root@136 mnt]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
4+2
6
6*1
6
quit
[root@136 mnt]# bc << EOF
> 3+2
> EOF
5
[root@136 mnt]# echo $[1+3]
4
10秒倒计时
[root@136 mnt]# vim 10s.sh
[root@136 mnt]# cat 10s.sh
#!/bin/bash
for ((Time=10;Time>0;Time--))
do
echo -n "after $Time's is end "
echo -ne "\r \r"
sleep 1
done
[root@136 mnt]# sh 10s.sh
after 5's is end
自定义时间倒计时
[root@136 mnt]# vim dao.sh
[root@136 mnt]# cat dao.sh
#!/bin/bash
read -p "Please input minutes: " MIN
read -p "Please input seconds: " SEC
((NUM=MIN*60+SEC))
for (($NUM;NUM>0;NUM--))
do
let FF=NUM/60
let MM=NUM%60
echo -ne "\r$FF:$MM \r"
sleep 1
done
[root@136 mnt]# sh dao.sh
Please input minutes: 1
Please input seconds: 2
0:47
root@136 mnt]# vim zidingyi.sh
[root@136 mnt]# cat zidingyi.sh
#!/bin/bash
PRING_MESSAGE()
{
echo -n "$MIN:$SEC "
echo -ne "\r \r"
sleep 1
}
read -p "Please input MIN: " MIN
read -p "Please input SEC: " SEC
for ((;SEC>=0;SEC--))
do
[ "$SEC" = "0" -a "$MIN" = "0" ]&& exit 0
[ "$SEC" = "0" -a "$MIN" -gt "0" ]&&{
PRING_MESSAGE
((MIN--))
SEC=59
}
PRING_MESSAGE
done
[root@136 mnt]# sh zidingyi.sh
Please input MIN: 1
Please input SEC: 3
0:36
设计计算器
[root@136 mnt]# vim calculator.sh
[root@136 mnt]# cat calculator.sh
#!/bin/bash
read -p "Please input first number: " FIRST
read -p "Please input the operation: " OPER
read -p "Please input second number: " SECOND
bc <<EOF
$FIRST$OPER$SECOND
EOF
[root@136 mnt]# sh calculator.sh
Please input first number: 1
Please input the operation: -
Please input second number: 1
0