ITPub博客

首页 > 自动化运维 > DevOps > shell加减乘除运算

shell加减乘除运算

原创 DevOps 作者:z597011036 时间:2023-02-10 11:01:33 0 删除 编辑

1.当前日期相加减

[oracle@test03 ~]$ date -d "2012-04-10 -1 day " +%Y-%m-%d    -- 指定固定日期减1天

2012-04-09

[oracle@test03 ~]$ date -d "2023-02-10 -1 day " +%Y-%m-%d

2023-02-09

[oracle@test03 ~]$ date -d "2023-02-10 +1 day " +%Y-%m-%d

2023-02-11

[oracle@test03 ~]$ date -d "2023-02-10 -1 week " +%Y-%m-%d

2023-02-03

[oracle@test03 ~]$ date -d "2023-02-10 -1 month " +%Y-%m-%d

2023-01-10

[oracle@test03 ~]$ date -d "2023-02-10 -1 year " +%Y-%m-%d

2022-02-10

[oracle@test03 ~]$ user_current_time=2022-03-03 

[oracle@test03 ~]$ date -d "$user_current_time -1 day " +%Y-%m-%d    --使用变量形式日期相减

2022-03-02

[oracle@test03 ~]$ 


2.指定两个日期加减运算(两个日期相减)

[oracle@test03 ~]$ user_current_time=`date +%F`

[oracle@test03 ~]$ user_expire_time=2023-07-12

[oracle@test03 ~]$ expire_time=`expr '(' $(date +%s -d "$user_expire_time") - $(date +%s -d "$user_current_time") ')' / 86400`

[oracle@test03 ~]$ echo $expire_time

152

[oracle@test03 ~]$ 


3.整数相加减,相乘除(使用expr)

[oracle@test03 ~]$ pga_size=4

[oracle@test03 ~]$ pga_sum=8

[oracle@test03 ~]$ c=`expr $pga_size + $pga_sum / 2 `    --expr不支持浮点数,bc支持浮点数

[oracle@test03 ~]$ echo $c

8

[oracle@test03 ~]$ 


4.浮点数相乘(使用echo ""|bc)

[oracle@test03 ~]$ pga_size=3.4

[oracle@test03 ~]$ pga_sum=4.5

[oracle@test03 ~]$ c=$(echo "$pga_size * $pga_sum"|bc)

[oracle@test03 ~]$ echo $c

15.3

[oracle@test03 ~]$ 


5. 浮点数相除(使用echo ""|bc)

[oracle@test03 ~]$ pga_size=3.4

[oracle@test03 ~]$ pga_sum=4.5

[oracle@test03 ~]$ c=$(echo "scale=2;$pga_size * 100 / $pga_sum"| bc)      -- scale=2保留两位小数

[oracle@test03 ~]$ echo $c

75.55

[oracle@test03 ~]$ 


示例:

  if [ `echo "scale=0;$pga_size *100 / $pga_sum"| bc` -le 5 ];then

     echo -e "\033[31m--------------------------ORACLE PGA内存严重不正常[低于总内存5%]\033[0m"

  elif [ `echo "scale=0;$pga_size * 100 / $pga_sum"| bc` -le 10 ];then

     echo -e "\033[33m--------------------------ORACLE PGA内存警告不正常[低于总内存10%]\033[0m"

  else

     echo "--------------------------ORACLE PGA内存正常[高于总内存10%]"

  fi


浮点数比较:

if [ $(echo "5.2 > 2"|bc) = 1 ];then

   echo "test"

fi


if [ `echo "$a - $b > 1"|bc` = 1 ];then

   echo "test"

fi 


6.两数相乘用\转义

[oracle@test03 ~]$ pga_size=4

[oracle@test03 ~]$ pga_sum=8

[oracle@test03 ~]$ c=`expr $pga_size \* $pga_sum / 2 `

[oracle@test03 ~]$ echo $c

16

[oracle@test03 ~]$ 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25854343/viewspace-2934715/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-03-31

  • 博文量
    79
  • 访问量
    486678