shell 脚本中算数运算

146 阅读1分钟

1.运算表达式

整数的运算

expr只能进行整数的运算

格式: expr 变量1 运算符 变量2 [运算符 变量3]

运算符:

加法 +

减法 -

乘法 \ *

除法 /

取余 (取模)%

image.png

2)

变量运算

image.png

3)

image.png

\

echo $( )

image.png

随机数生成器变量:

$RANDOM   取值范围:0-32767

image.png

image.png

注:

34+1 说明从1-34
34  说明从0-33   
 

简单脚本

image.png

提取系统信息

#!/bin/bash
ip=$(ifconfig ens33|grep netmask|tr -s ' ' |cut -d ' '   -f3)
mem=$(free -h|grep Mem|tr -s ' '|cut -d ' ' -f2)
hostname=$(hostname)
nh=`uname -r`
disk=$(lsblk|grep disk|tr -s ' ' |cut -d' ' -f4)
cpuxh=$(lscpu |grep '型号:'|tr -s ' ' |cut -d' ' -f2)
cpuhs=$(lscpu |grep 'CPU(s):'|tr -s ' ' |cut -d' ' -f2)





echo "该主机的ip地址是:  $ip"
echo "该主机的总内存是:  $mem"
echo "该主机的主机名是:  $hostname"
echo "该主机的内核版本是:$nh"
echo "该主机的disk大小为:$disk"
echo "该主机的cpu型号:   $cpuxh"
echo "该主机的cpu核数:   $cpuhs

image.png

变量的自增和自减

简写表达式等同于
let i++i=$[$i+1]
let i--i=$[$i-1]
let i+=2i=$[$i+2]
let i-=2i=$[$i-2]
let i*=2i=$[$i*2]
let i/=2i=$[$i/2]
let i%=2i=$[$i%2]

示例1:

image.png

示例2:

比较 i++ 和 ++i:

i++ 是先赋值再自增; ++i 是自增后再赋值。

  1. [root@localhost ~]# i=1;let i++; echo $i  2
  2. [root@localhost ~]# i=1;let ++i; echo $i  2  
  3. [root@localhost ~]# i=100;let z=i++; echo ii z   //i++是先赋值给z后再自增  101 100  
  4. [root@localhost ~]# i=100;let z=++i; echo ii z   //++i是先自增后再赋值给z  101 101

image.png

5 生成随机数

使用 echo $[RANDOM%n] 可以生成随机数,n为正整数。

对 n 取余数的范围是 [0,n-1]。

  • echo $[RANDOM%10]生成的随机数范围为 [0,9]
  • 如果希望包含10的话,可以echo $[RANDOM%11],则随机数范围为 [0,10]。
  • 如果希望随机数范围都为正整数,即不包含0的话,可以echo $[RANDOM%10+1],此时随机数范围为[1,10]。

image.png

image.png

image.png