计算

#! /bin/sh

while true

do

    mems=`top -b -n 1|grep -E '18148|18171|18605|18562' |awk -F" " '{print $(NF-6)}'`

    cpus=`top -b -n 1|grep -E '18148|18171|18605|18562|24334' |awk -F" " '{print $(NF-3)}'`

    memSum=0

    for mem in ${mems[*]};do

        memInt=`echo $mem|bc`

        memSum=`echo "$memSum+$memInt"|bc`

    done

    #echo "mem: "$memSum

 

    cpuSum=0

    for cpu in ${cpus[*]};do

        cpuInt=`echo $cpu|bc`

        cpuSum=`echo "$cpuSum+$cpuInt"|bc`

    done

    echo "cpu: "$cpuSum       " mem: "$memSum

    sleep 2

done

 

 

数字的运算可使用let、(( )) ,其中运算时不需要变量$符号,运算符为 +、-、*、/、% ,不建议使用expr
数字的比较使用 (( )) ,其运算符 >、>=、<、<=、==、!=

使用 (( )) 时,不需要空格分隔各值和运算符,使用 [[ ]] 时需要用空格分隔各值和运算符。

字符表达式的比较使用 [[ ]] ,其运算符 =、!=、-n、-z

 

 

#! /bin/sh

a=1234

if ((a==1234));then           // 其中运算时不需要变量$符号, 不需要空格分隔各值和运算符

    echo 111

fi

 

 

 

#! /bin/sh

a="1234"

if [[  $a == "1234" ]];then   //其中比较时需要变量$符号, 需要空格分隔各值和运算符

    echo 111

fi

 

posted @ 2021-08-03 15:10  DaShuZang  阅读(372)  评论(0)    收藏  举报