shell中的运算

运算方式和运算符号

运算符号                意义
+,-                 加法,减法
*,/,%           乘法,除法,取余
**                      幂运算
++,- -              自增加,自减少
<,<=,>,>=           比较符号
=,+=,-=,*=,/=,%=    赋值运算,例如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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值